fix restoreWindowPositionAndSize on dual-screen
This commit is contained in:
parent
414bbf42aa
commit
e96699d530
|
@ -114,41 +114,10 @@ firetray.Handler = {
|
|||
});
|
||||
firetray.VersionChange.watch();
|
||||
|
||||
// TEST - check Screens and Monitors !
|
||||
try {
|
||||
Cu.import("resource://firetray/ctypes/x11.jsm");
|
||||
Cu.import("resource://firetray/ctypes/xinerama.jsm");
|
||||
LOG("XINERAMA: "+xinerama.XineramaIsActive(x11.current.Display));
|
||||
|
||||
Cu.import("resource://firetray/ctypes/gdk.jsm");
|
||||
LOG("SCREENS: "+gdk.gdk_display_get_n_screens(gdk.gdk_display_get_default()));
|
||||
|
||||
// GdkScreen *screen = gtk_widget_get_screen (widget);
|
||||
// gint i = gdk_screen_get_monitor_at_window (screen,
|
||||
// widget->window);
|
||||
|
||||
|
||||
// let dl = gdk.gdk_display_list_devices(gdk.gdk_display_get_default()); // "should not be freed"
|
||||
// LOG("LENGTH="+gobject.g_list_length(dl));
|
||||
// let mozt_func = gobject.GFunc_t(firetray.Handler.glist_foreach);
|
||||
// gobject.g_list_foreach(dl, mozt_func, null);
|
||||
|
||||
} catch(x) {ERROR(x);}
|
||||
|
||||
this.initialized = true;
|
||||
return true;
|
||||
},
|
||||
|
||||
// TEST
|
||||
glist_foreach: function(a1, a2) {
|
||||
LOG("glist_foreach: "+a1);
|
||||
let gdkDev = ctypes.cast(a1, gdk.GdkDevice.ptr);
|
||||
let devName = gdk.gdk_device_get_name(gdkDev);
|
||||
LOG(devName.readString());
|
||||
LOG(gdk.gdk_device_get_source(gdkDev));
|
||||
LOG(gdk.gdk_device_get_mode(gdkDev));
|
||||
},
|
||||
|
||||
shutdown: function() {
|
||||
firetray.PrefListener.unregister();
|
||||
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
/* -*- Mode: javascript; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
|
||||
var EXPORTED_SYMBOLS = [ "xinerama" ];
|
||||
|
||||
const XINERAMA_LIBNAME = "Xinerama";
|
||||
const XINERAMA_ABIS = [ 1 ];
|
||||
|
||||
const Cu = Components.utils;
|
||||
const Cc = Components.classes;
|
||||
const Ci = Components.interfaces;
|
||||
|
||||
Cu.import("resource://gre/modules/Services.jsm");
|
||||
Cu.import("resource://gre/modules/ctypes.jsm");
|
||||
Cu.import("resource://firetray/ctypes/ctypes-utils.jsm");
|
||||
Cu.import("resource://firetray/logging.jsm");
|
||||
Cu.import("resource://firetray/ctypes/x11.jsm");
|
||||
|
||||
|
||||
function xinerama_defines(lib) {
|
||||
lib.lazy_bind("XineramaIsActive", x11.Bool, x11.Display.ptr);
|
||||
}
|
||||
|
||||
new ctypes_library(XINERAMA_LIBNAME, XINERAMA_ABIS, xinerama_defines, this);
|
|
@ -195,11 +195,11 @@ firetray.Window = {
|
|||
firetray.Handler.windows[xid].savedY = gy.value;
|
||||
firetray.Handler.windows[xid].savedWidth = gwidth.value;
|
||||
firetray.Handler.windows[xid].savedHeight = gheight.value;
|
||||
LOG("save: gx="+gx+", gy="+gy+", gwidth="+gwidth+", gheight="+gheight);
|
||||
LOG("save: gx="+gx.value+", gy="+gy.value+", gwidth="+gwidth.value+", gheight="+gheight.value);
|
||||
},
|
||||
|
||||
restoreWindowPositionAndSize: function(xid) {
|
||||
if (!firetray.Handler.windows[xid].savedX)
|
||||
if ("undefined" === typeof(firetray.Handler.windows[xid].savedX))
|
||||
return; // windows[xid].saved* may not be initialized
|
||||
|
||||
LOG("restore: x="+firetray.Handler.windows[xid].savedX+", y="+firetray.Handler.windows[xid].savedY+", w="+firetray.Handler.windows[xid].savedWidth+", h="+firetray.Handler.windows[xid].savedHeight);
|
||||
|
|
Loading…
Reference in New Issue