From b5a904807070de84e338f053d7bb231ba4eb7b17 Mon Sep 17 00:00:00 2001 From: cxl Date: Sat, 11 Jan 2014 10:59:14 +0000 Subject: [PATCH] CtrlCore: Fixed GTK issue with modifier keys git-svn-id: svn://ultimatepp.org/upp/trunk@6753 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/CtrlCore/GtkCtrl.h | 3 --- uppsrc/CtrlCore/GtkEvent.cpp | 26 ++++++-------------------- 2 files changed, 6 insertions(+), 23 deletions(-) diff --git a/uppsrc/CtrlCore/GtkCtrl.h b/uppsrc/CtrlCore/GtkCtrl.h index 5ee12582c..18fb03127 100644 --- a/uppsrc/CtrlCore/GtkCtrl.h +++ b/uppsrc/CtrlCore/GtkCtrl.h @@ -59,9 +59,6 @@ bool SweepConfigure(bool wait); bool SweepFocus(bool wait); - static bool EventMouseValid; - static Point EventMousePos; - static guint EventState; static BiVector Events; static Vector< Ptr > activePopup; static Vector wins; diff --git a/uppsrc/CtrlCore/GtkEvent.cpp b/uppsrc/CtrlCore/GtkEvent.cpp index 0a5bde595..127e44d40 100644 --- a/uppsrc/CtrlCore/GtkEvent.cpp +++ b/uppsrc/CtrlCore/GtkEvent.cpp @@ -7,10 +7,6 @@ NAMESPACE_UPP #define LLOG(x) // DLOG(rmsecs() << ' ' << x) //_DBG_ #define LOG_EVENTS -bool Ctrl::EventMouseValid; -Point Ctrl::EventMousePos; -guint Ctrl::EventState; - BiVector Ctrl::Events; Point Ctrl::CurrentMousePos; @@ -19,7 +15,7 @@ guint32 Ctrl::CurrentTime; Ctrl::Event Ctrl::CurrentEvent; bool GetShift() { return Ctrl::CurrentState & GDK_SHIFT_MASK; } -bool GetCtrl() { return Ctrl::CurrentState & GDK_CONTROL_MASK ; } +bool GetCtrl() { return Ctrl::CurrentState & GDK_CONTROL_MASK; } bool GetAlt() { return Ctrl::CurrentState & GDK_MOD1_MASK; } bool GetCapsLock() { return Ctrl::CurrentState & GDK_LOCK_MASK; } bool GetMouseLeft() { return Ctrl::CurrentState & GDK_BUTTON1_MASK; } @@ -134,7 +130,6 @@ gboolean Ctrl::GtkEvent(GtkWidget *widget, GdkEvent *event, gpointer user_data) } return false; case GDK_LEAVE_NOTIFY: - EventMouseValid = false; return false; case GDK_MOTION_NOTIFY: { GdkEventMotion *e = (GdkEventMotion *)event; @@ -166,7 +161,6 @@ gboolean Ctrl::GtkEvent(GtkWidget *widget, GdkEvent *event, gpointer user_data) pressed = true; case GDK_KEY_RELEASE: key = (GdkEventKey *)event; - EventState = key->state; value = (int) key->keyval; if(pressed) { p = GetTopCtrlFromId(user_data); @@ -190,9 +184,6 @@ gboolean Ctrl::GtkEvent(GtkWidget *widget, GdkEvent *event, gpointer user_data) void Ctrl::DoMouseEvent(int state, Point pos) { - EventMousePos = pos; - EventState = state; - EventMouseValid = true; } int Ctrl::DoButtonEvent(GdkEvent *event, bool press) @@ -258,16 +249,11 @@ void Ctrl::AddEvent(gpointer user_data, int type, const Value& value) e.windowid = (uint32)(uintptr_t)user_data; e.type = type; e.value = value; - if(!EventMouseValid) { - gint x, y; - GdkModifierType mod; - gdk_window_get_pointer(gdk_get_default_root_window(), &x, &y, &mod); - EventState = mod; - EventMousePos = Point(x, y); - EventMouseValid = true; - } - e.mousepos = EventMousePos; - e.state = EventState; + gint x, y; + GdkModifierType mod; + gdk_window_get_pointer(gdk_get_default_root_window(), &x, &y, &mod); + e.mousepos = Point(x, y); + e.state = mod; e.count = 1; e.event = gtk_get_current_event(); }