Mercurial > vim
changeset 2923:7653420fdc45 v7.3.234
updated for version 7.3.234
Problem: With GTK menu may be popping down.
Solution: Use event time instead of GDK_CURRENT_TIME. (Hong Xu)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Sun, 26 Jun 2011 04:49:00 +0200 |
parents | c3a638284c25 |
children | 199b94533764 |
files | src/gui.c src/gui.h src/gui_gtk.c src/gui_gtk_x11.c src/version.c |
diffstat | 5 files changed, 14 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/src/gui.c +++ b/src/gui.c @@ -84,6 +84,10 @@ gui_start() gui.starting = TRUE; full_screen = FALSE; +#ifdef FEAT_GUI_GTK + gui.event_time = GDK_CURRENT_TIME; +#endif + #ifdef MAY_FORK if (!gui.dofork || vim_strchr(p_go, GO_FORG) || recursive) dofork = FALSE;
--- a/src/gui.h +++ b/src/gui.h @@ -401,6 +401,8 @@ typedef struct Gui GtkAccelGroup *accel_group; GtkWidget *filedlg; /* file selection dialog */ char_u *browse_fname; /* file name from filedlg */ + + guint32 event_time; #endif /* FEAT_GUI_GTK */ #if defined(FEAT_GUI_TABLINE) \
--- a/src/gui_gtk.c +++ b/src/gui_gtk.c @@ -1391,7 +1391,7 @@ gui_mch_show_popupmenu(vimmenu_T *menu) gtk_menu_popup(GTK_MENU(menu->submenu_id), NULL, NULL, (GtkMenuPositionFunc)NULL, NULL, - 3U, (guint32)GDK_CURRENT_TIME); + 3U, gui.event_time); } /* Ugly global variable to pass "mouse_pos" flag from gui_make_popup() to
--- a/src/gui_gtk_x11.c +++ b/src/gui_gtk_x11.c @@ -88,8 +88,6 @@ extern void bonobo_dock_item_set_behavio # include <X11/Sunkeysym.h> #endif -static guint32 clipboard_event_time = CurrentTime; - /* * Easy-to-use macro for multihead support. */ @@ -934,7 +932,7 @@ key_press_event(GtkWidget *widget UNUSED guint state; char_u *s, *d; - clipboard_event_time = event->time; + gui.event_time = event->time; key_sym = event->keyval; state = event->state; @@ -1129,7 +1127,7 @@ key_release_event(GtkWidget *widget UNUS GdkEventKey *event, gpointer data UNUSED) { - clipboard_event_time = event->time; + gui.event_time = event->time; /* * GTK+ 2 input methods may do fancy stuff on key release events too. * With the default IM for instance, you can enter any UCS code point @@ -1622,7 +1620,7 @@ button_press_event(GtkWidget *widget, int x, y; int_u vim_modifiers; - clipboard_event_time = event->time; + gui.event_time = event->time; /* Make sure we have focus now we've been selected */ if (gtk_socket_id != 0 && !GTK_WIDGET_HAS_FOCUS(widget)) @@ -1733,7 +1731,7 @@ button_release_event(GtkWidget *widget U int x, y; int_u vim_modifiers; - clipboard_event_time = event->time; + gui.event_time = event->time; /* Remove any motion "machine gun" timers used for automatic further extension of allocation areas if outside of the applications window @@ -5654,7 +5652,7 @@ clip_mch_own_selection(VimClipboard *cbd int success; success = gtk_selection_owner_set(gui.drawarea, cbd->gtk_sel_atom, - clipboard_event_time); + gui.event_time); gui_mch_update(); return (success) ? OK : FAIL; }