summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--src/vte.c16
-rw-r--r--vte.spec6
3 files changed, 22 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index e2788ff7..0f1ed5ee 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,12 @@
2002-08-30 nalin
+ * src/vte.c: Restore the focus-in/focus-out handlers -- the defaults
+ don't quite DTRT for us because they miss our im_context (#72946). When
+ setting the cursor location for the input method, make the Y coordinate
+ relative to the window, not the scrollback buffer. When resizing the
+ scrollback buffer, clamp the cursor to the set of possible locations,
+ not the visible locations.
+
+2002-08-30 nalin
* src/vte.c: Initialize the pty master fd to -1 to avoid spurious
window resizes on fd 0.
* src/debug.c, src/debug.h: Add a "pty" debug message class.
diff --git a/src/vte.c b/src/vte.c
index 4c982a1d..7205dce6 100644
--- a/src/vte.c
+++ b/src/vte.c
@@ -6173,12 +6173,14 @@ vte_terminal_process_incoming(gpointer data)
/* Tell the input method where the cursor is. */
if (terminal->pvt->im_context) {
rect.x = terminal->pvt->screen->cursor_current.col *
- terminal->char_width;
+ terminal->char_width + VTE_PAD_WIDTH;
rect.width = terminal->char_width;
- rect.y = terminal->pvt->screen->cursor_current.row *
- terminal->char_height;
+ rect.y = (terminal->pvt->screen->cursor_current.row -
+ terminal->pvt->screen->scroll_delta) *
+ terminal->char_height + VTE_PAD_WIDTH;
rect.height = terminal->char_height;
- gtk_im_context_set_cursor_location(terminal->pvt->im_context, &rect);
+ gtk_im_context_set_cursor_location(terminal->pvt->im_context,
+ &rect);
}
#ifdef VTE_DEBUG
@@ -12181,8 +12183,8 @@ vte_terminal_class_init(VteTerminalClass *klass, gconstpointer data)
widget_class->button_press_event = vte_terminal_button_press;
widget_class->button_release_event = vte_terminal_button_release;
widget_class->motion_notify_event = vte_terminal_motion_notify;
- /* widget_class->focus_in_event = vte_terminal_focus_in; */
- /* widget_class->focus_out_event = vte_terminal_focus_out; */
+ widget_class->focus_in_event = vte_terminal_focus_in;
+ widget_class->focus_out_event = vte_terminal_focus_out;
widget_class->unrealize = vte_terminal_unrealize;
widget_class->size_request = vte_terminal_size_request;
widget_class->size_allocate = vte_terminal_size_allocate;
@@ -13022,7 +13024,7 @@ vte_terminal_set_scrollback_lines(VteTerminal *terminal, long lines)
screens[i]->scroll_delta = CLAMP(screens[i]->scroll_delta,
low, highd);
screens[i]->cursor_current.row = CLAMP(screens[i]->cursor_current.row,
- low, highd);
+ low, high);
}
terminal->pvt->scrollback_lines = lines;
diff --git a/vte.spec b/vte.spec
index 193ee8ac..4327d2f5 100644
--- a/vte.spec
+++ b/vte.spec
@@ -1,5 +1,5 @@
Name: vte
-Version: 0.8.12
+Version: 0.8.13
Release: 1
Summary: An experimental terminal emulator.
License: LGPL
@@ -61,6 +61,10 @@ rm $RPM_BUILD_ROOT/%{_libdir}/lib%{name}.la
%{_libdir}/pkgconfig/*
%changelog
+* Fri Aug 30 2002 Nalin Dahyabhai <nalin@redhat.com> 0.8.13-1
+- restore the IM status window by restoring our own focus-in/focus-out
+ handlers (#72946)
+
* Fri Aug 30 2002 Nalin Dahyabhai <nalin@redhat.com> 0.8.12-1
- cleanups