< prev index next >

modules/javafx.graphics/src/main/native-glass/gtk/glass_window.cpp

Print this page

        

*** 38,47 **** --- 38,50 ---- #include <X11/extensions/shape.h> #include <cairo.h> #include <cairo-xlib.h> #include <gdk/gdkx.h> #include <gdk/gdk.h> + #ifdef GLASS_GTK3 + #include <gtk/gtkx.h> + #endif #include <string.h> #include <iostream> #include <algorithm>
*** 349,358 **** --- 352,366 ---- jdouble dx = 0; jdouble dy = 0; // converting direction to change in pixels switch (event->direction) { + #if GTK_CHECK_VERSION(3, 4, 0) + case GDK_SCROLL_SMOOTH: + //FIXME 3.4 ??? + break; + #endif case GDK_SCROLL_UP: dy = 1; break; case GDK_SCROLL_DOWN: dy = -1;
*** 414,424 **** jcharArray jChars = NULL; jchar key = gdk_keyval_to_unicode(event->keyval); if (key >= 'a' && key <= 'z' && (event->state & GDK_CONTROL_MASK)) { key = key - 'a' + 1; // map 'a' to ctrl-a, and so on. } else { ! key = glass_gtk_fixup_typed_key(key, event->keyval); } if (key > 0) { jChars = mainEnv->NewCharArray(1); if (jChars) { --- 422,446 ---- jcharArray jChars = NULL; jchar key = gdk_keyval_to_unicode(event->keyval); if (key >= 'a' && key <= 'z' && (event->state & GDK_CONTROL_MASK)) { key = key - 'a' + 1; // map 'a' to ctrl-a, and so on. } else { ! #ifdef GLASS_GTK2 ! if (key == 0) { ! // Work around "bug" fixed in gtk-3.0: ! // http://mail.gnome.org/archives/commits-list/2011-March/msg06832.html ! switch (event->keyval) { ! case 0xFF08 /* Backspace */: key = '\b'; ! case 0xFF09 /* Tab */: key = '\t'; ! case 0xFF0A /* Linefeed */: key = '\n'; ! case 0xFF0B /* Vert. Tab */: key = '\v'; ! case 0xFF0D /* Return */: key = '\r'; ! case 0xFF1B /* Escape */: key = '\033'; ! case 0xFFFF /* Delete */: key = '\177'; ! } ! } ! #endif } if (key > 0) { jChars = mainEnv->NewCharArray(1); if (jChars) {
*** 1452,1462 **** WindowContextBase(), parent() { jwindow = mainEnv->NewGlobalRef(_jwindow); ! gtk_widget = gtk_plug_new((GdkNativeWindow)PTR_TO_JLONG(_owner)); g_signal_connect(G_OBJECT(gtk_widget), "configure-event", G_CALLBACK(plug_configure), this); gtk_widget_set_size_request(gtk_widget, 0, 0); gtk_widget_set_events(gtk_widget, GDK_ALL_EVENTS_MASK); --- 1474,1486 ---- WindowContextBase(), parent() { jwindow = mainEnv->NewGlobalRef(_jwindow); ! WindowContext* parent = ((WindowContext*)JLONG_TO_PTR(_owner)); ! Window win = GDK_WINDOW_XID(parent->get_gdk_window()); ! gtk_widget = gtk_plug_new(win); g_signal_connect(G_OBJECT(gtk_widget), "configure-event", G_CALLBACK(plug_configure), this); gtk_widget_set_size_request(gtk_widget, 0, 0); gtk_widget_set_events(gtk_widget, GDK_ALL_EVENTS_MASK);
*** 1778,1788 **** --- 1802,1816 ---- full_screen_window = new WindowContextTop(jwindow, NULL, 0L, UNTITLED, NORMAL, (GdkWMFunction) 0); int x, y, w, h; gdk_window_get_origin(gdk_window, &x, &y); + #ifdef GLASS_GTK3 + gdk_window_get_geometry(gdk_window, NULL, NULL, &w, &h); + #else gdk_window_get_geometry(gdk_window, NULL, NULL, &w, &h, NULL); + #endif full_screen_window->set_bounds(x, y, true, true, w, h, -1, -1); if (WindowContextBase::sm_grab_window == this) { ungrab_focus(); }
< prev index next >