summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES1
-rw-r--r--src/screen_xywh.cxx14
2 files changed, 8 insertions, 7 deletions
diff --git a/CHANGES b/CHANGES
index eaa67d6d6..93be4b865 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,5 +1,6 @@
CHANGES IN FLTK 1.1.8
+ - Attempt to fix multi monitor issues (STR #1153)
- Fixed warnings when compiling w/Cygwin (STR #1152)
- Fixed missing reset of flag in FLUID (STR #1187)
- Fixed maximizing in OS X (STR #1221)
diff --git a/src/screen_xywh.cxx b/src/screen_xywh.cxx
index f8ca76970..ede0f5969 100644
--- a/src/screen_xywh.cxx
+++ b/src/screen_xywh.cxx
@@ -41,25 +41,25 @@ static int num_screens = 0;
# endif // !HMONITOR_DECLARED && _WIN32_WINNT < 0x0500
// BOOL EnumDisplayMonitors(HDC, LPCRECT, MONITORENUMPROC, LPARAM)
-typedef BOOL (*fl_edm_func)(HDC, LPCRECT, MONITORENUMPROC, LPARAM);
+typedef BOOL (WINAPI* fl_edm_func)(HDC, LPCRECT, MONITORENUMPROC, LPARAM);
// BOOL GetMonitorInfo(HMONITOR, LPMONITORINFO)
-typedef BOOL (*fl_gmi_func)(HMONITOR, LPMONITORINFO);
+typedef BOOL (WINAPI* fl_gmi_func)(HMONITOR, LPMONITORINFO);
static fl_gmi_func fl_gmi = NULL; // used to get a proc pointer for GetMonitorInfoA
static RECT screens[16];
-static BOOL CALLBACK screen_cb(HMONITOR mon, HDC, LPRECT, LPARAM) {
+static BOOL CALLBACK screen_cb(HMONITOR mon, HDC, LPRECT r, LPARAM) {
if (num_screens >= 16) return TRUE;
MONITORINFO mi;
mi.cbSize = sizeof(mi);
// GetMonitorInfo(mon, &mi);
- fl_gmi(mon, &mi);
-
- screens[num_screens] = mi.rcWork;
- num_screens ++;
+ if (fl_gmi(mon, &mi)) {
+ screens[num_screens] = mi.rcWork;
+ num_screens ++;
+ }
return TRUE;
}