summaryrefslogtreecommitdiff
path: root/src/drivers/X11
diff options
context:
space:
mode:
authorManolo Gouy <Manolo>2017-07-30 16:21:57 +0000
committerManolo Gouy <Manolo>2017-07-30 16:21:57 +0000
commitc4e04e4c7f446464ef65382cf10bc13417563b3b (patch)
treef012307f02f8fba85f406f533908f63f7b15ea1c /src/drivers/X11
parent5a7a954ebd1005b30bbe48d84e4291c66ad30252 (diff)
Improve rescaling when window moved across screens: make sure center stays on new screen.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12367 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src/drivers/X11')
-rw-r--r--src/drivers/X11/Fl_X11_Screen_Driver.H1
-rw-r--r--src/drivers/X11/Fl_X11_Screen_Driver.cxx24
2 files changed, 2 insertions, 23 deletions
diff --git a/src/drivers/X11/Fl_X11_Screen_Driver.H b/src/drivers/X11/Fl_X11_Screen_Driver.H
index db986b33c..6ceca775c 100644
--- a/src/drivers/X11/Fl_X11_Screen_Driver.H
+++ b/src/drivers/X11/Fl_X11_Screen_Driver.H
@@ -56,7 +56,6 @@ public:
virtual void scale(int n, float f) { screens[n].scale = f;}
virtual float desktop_scale_factor();
int screen_num_unscaled(int x, int y);
- int screen_num_unscaled(int x, int y, int w, int h);
#endif
static int ewmh_supported();
diff --git a/src/drivers/X11/Fl_X11_Screen_Driver.cxx b/src/drivers/X11/Fl_X11_Screen_Driver.cxx
index d1390e862..013ae7566 100644
--- a/src/drivers/X11/Fl_X11_Screen_Driver.cxx
+++ b/src/drivers/X11/Fl_X11_Screen_Driver.cxx
@@ -1182,9 +1182,10 @@ void Fl_X11_Screen_Driver::offscreen_size(Fl_Offscreen off, int &width, int &hei
}
#if USE_XFT
+//NOTICE: returns -1 if x,y is not in any screen
int Fl_X11_Screen_Driver::screen_num_unscaled(int x, int y)
{
- int screen = 0;
+ int screen = -1;
if (num_screens < 0) init();
for (int i = 0; i < num_screens; i ++) {
@@ -1197,25 +1198,6 @@ int Fl_X11_Screen_Driver::screen_num_unscaled(int x, int y)
return screen;
}
-int Fl_X11_Screen_Driver::screen_num_unscaled(int x, int y, int w, int h)
-{
- int best_screen = 0;
- float best_intersection = 0.;
- if (num_screens < 0) init();
- for (int i = 0; i < num_screens; i++) {
- float sintersection = fl_intersection(x, y, w, h, screens[i].x_org, screens[i].y_org,
- screens[i].width, screens[i].height);
- if (sintersection > best_intersection) {
- best_screen = i;
- best_intersection = sintersection;
- }
- }
- return best_screen;
-}
-#endif
-
-#if USE_XFT
-
#if HAVE_DLSYM && HAVE_DLFCN_H
// returns true when schema is among the list of available schemas
@@ -1404,8 +1386,6 @@ float Fl_X11_Screen_Driver::desktop_scale_factor()
}
-
-
#endif // USE_XFT
//