summaryrefslogtreecommitdiff
path: root/xW/xW.cpp
diff options
context:
space:
mode:
authorPřemysl Eric Janouch <p@janouch.name>2023-08-25 21:20:50 +0200
committerPřemysl Eric Janouch <p@janouch.name>2023-08-25 22:48:31 +0200
commit34521e61c1f0c44bc9018d5a7a861baf6888d5fc (patch)
tree3b9e87a3a728cb7a92726a1a7c3c10afe75723b5 /xW/xW.cpp
parentc22dd67fc16ad4070fdeec264f7538764ba7a19e (diff)
downloadxK-34521e61c1f0c44bc9018d5a7a861baf6888d5fc.tar.gz
xK-34521e61c1f0c44bc9018d5a7a861baf6888d5fc.tar.xz
xK-34521e61c1f0c44bc9018d5a7a861baf6888d5fc.zip
xP/xW: fix buffer rename handling
Maintaining string pointers to the current/last buffer means that renames invalidate them.
Diffstat (limited to 'xW/xW.cpp')
-rw-r--r--xW/xW.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/xW/xW.cpp b/xW/xW.cpp
index 6984892..980f825 100644
--- a/xW/xW.cpp
+++ b/xW/xW.cpp
@@ -914,11 +914,15 @@ relay_process_message(const Relay::EventMessage &m)
if (!b)
break;
- b->buffer_name = data.buffer_name;
+ b->buffer_name = data.new_;
refresh_buffer_list();
- if (b->buffer_name == g.buffer_current)
+ if (data.buffer_name == g.buffer_current) {
+ g.buffer_current = data.new_;
refresh_status();
+ }
+ if (data.buffer_name == g.buffer_last)
+ g.buffer_last = data.new_;
break;
}
case Relay::Event::BUFFER_REMOVE: