CtrlCore: Fixed GTK issue with modifier keys

git-svn-id: svn://ultimatepp.org/upp/trunk@6753 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
cxl 2014-01-11 10:59:14 +00:00
parent 924e70f073
commit b5a9048070
2 changed files with 6 additions and 23 deletions

View file

@ -59,9 +59,6 @@
bool SweepConfigure(bool wait);
bool SweepFocus(bool wait);
static bool EventMouseValid;
static Point EventMousePos;
static guint EventState;
static BiVector<Event> Events;
static Vector< Ptr<Ctrl> > activePopup;
static Vector<Win> wins;

View file

@ -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::Event> 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();
}