Commit graph

23 commits

Author SHA1 Message Date
Sergii Stoian
db1079b5e3 * Headers/x11/XGServer.h,
* Source/x11/XGServer.m (xScreenSize): new primitive method.

* Source/x11/XGDragView.m (XY): use new primitive method to get Xlib
  screen height. Fixes broken DnD on vertically aligned monitors.
2020-03-03 01:59:04 +02:00
Sergii Stoian
638940fb28 * Headers/x11/XGServer.h (GSDisplayServer): added new ivar xScreenSize
to hold Xlib screen size dimensions.

* Source/x11/XGServerWindow.m: 
  (_OSFrameToXFrame:for:): use xScreenSize instead of DisplayHeight.
  (_OSFrameToXHints:for:): ditto.
  (_XFrameToOSFrame:for:): ditto.
  (movewindow::): ditto.
  (_screenSize): new static function to get dimensions of Xlib screen from
  root window.
  (screenList): use xScreenSize instead of DisplayHeight/DisplayWidth.
2020-02-20 19:13:06 +02:00
Sergii Stoian
c1ab242c9e * gswindow_device_t structure element screen was renamed to
`screen_id`; `monitor_id` element was added. Made use of
  `screen_id` and `monitor_id` where it's appropriate.

* Removed `screen` parameter from methods which contains it in name.
  Methods were renamed to remove `Screen` and `FromScreen`.

* Source/x11/XGServerWindow.m (screenList): change with assumption
  that Xlib screen is one per application.
  Failback code to RandR-related always creates arrays with one element
  (no enumeration needed). Create `monitor` structure in failback (non-RandR)
  code. Use `screen_id` MonitorDevice structure element to hold	Xlib screen
  ID.
  (windowDepthForScreen:): assume that `screen` parameter is a Xlib screen ID,
  simplify code - `screen` will be used with RandR or not.
  (availableDepthsForScreen:): changed with assumption that `screen` is a index
  of element in `monitors` structure.

* Source/x11/XGServer.m (_initXContext): initialize `monitors` array
  early here before first use (calls to XGServerWindow methods).
2020-02-03 01:21:52 +02:00
Sergii Stoian
62bef72ac0 * Headers/x11/XGServer.h: monitorsCount ivar was added to hold
`monitors` array items.
* Source/x11/XGServerWindow.m: use `monitorsCount` instead of local
  variable `count` or ScreenCount() value.
* ChangeLog: update to the latest changes.
Mark methods where usage of X Screen as parameter is correct and where isn't.
2020-01-30 01:27:11 +02:00
Sergii Stoian
7ebd2468b1 * Headers/x11/XGServer.h,
* Source/x11/XGServer.m,
* Source/x11/XGServerWindow.m: hold the cache of connected monitor devices
  parameters - `monitors` - a an array structures.
2020-01-29 19:23:52 +02:00
Sergii Stoian
6947c49951 * Headers/x11/XGServer.h: split RandR variables defintion into separate
lines.
2020-01-28 11:52:24 +02:00
Sergii Stoian
64335397b5 * Headers/x11/XGServer.h (GSDisplayServer): RandR event and error base
ivars were added.
* Source/x11/XGServer.m (_initXContext): get RandR event and error base.
* Source/x11/XGServerEvent.m (processEvent:): pack several RandR events
  into one notification post.
2020-01-23 19:03:34 +02:00
fredkiefer
b9e9f461ab Restructure Atom handling to get all atoms at once.
Add new method on XGServer to get the name of the window manager.
2018-05-01 23:08:35 +02:00
Riccardo Mottola
cc7fa76c5e Enable Sync only on explicit presence of sync.h, not just Xext.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@39198 72102866-910b-0410-8b05-ffd578937521
2015-11-24 23:47:25 +00:00
Fred Kiefer
55bc606c48 * Headers/x11/XGServer.h: Add #include of config.h.
* Source/art/path.m (-DPSrectfill::::),
* Source/xlib/XGGState.m (-DPSrectfill::::): Change name of local
variable to avoid compiler warning.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@33365 72102866-910b-0410-8b05-ffd578937521
2011-06-22 22:09:41 +00:00
Eric Wasylishen
5ece9220eb * Source/x11/XGServerWindow.m:
* Source/x11/XGServer.m:
* Source/x11/XGServerEvent.m:
* Headers/x11/XGGeneric.h:
* Headers/x11/XGServerWindow.h:
* Headers/x11/XGServer.h:
Implement the _NET_WM_SYNC_REQUEST protocol described here:
http://standards.freedesktop.org/wm-spec/1.3/ar01s06.html

This is supposed to make window resizing smoother when dragging
a resize handle provided by the window manager, by waiting to
change the window manager's frame until the GNUstep window is
finished repainting.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@33045 72102866-910b-0410-8b05-ffd578937521
2011-05-15 08:37:44 +00:00
Fred Kiefer
1802f35b22 In XwindowBuffer get the default visual and depth from the XGServer.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@26961 72102866-910b-0410-8b05-ffd578937521
2008-10-24 16:42:38 +00:00
Fred Kiefer
d6fc8b8e74 Try to keep the visual of art consistent with the one used by X.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@26849 72102866-910b-0410-8b05-ffd578937521
2008-09-14 21:22:54 +00:00
Adam Fedor
250ebdfad0 Revert library license version to 2 until applications can be converted
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@26620 72102866-910b-0410-8b05-ffd578937521
2008-06-10 04:12:46 +00:00
Fred Kiefer
0f8c5487c7 Change files to use GPL 3 and LGPL 3.
Prepare for next release.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@25538 72102866-910b-0410-8b05-ffd578937521
2007-10-29 23:25:10 +00:00
Fred Kiefer
355aa2db1e New methods to store and get last event time.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@25457 72102866-910b-0410-8b05-ffd578937521
2007-09-05 14:35:06 +00:00
Fred Kiefer
f4868d3a43 New method -_XFrameToXHints:for:.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@22923 72102866-910b-0410-8b05-ffd578937521
2006-05-13 20:56:18 +00:00
Adam Fedor
7a3f75f9ac Update FSF Address
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@21263 72102866-910b-0410-8b05-ffd578937521
2005-05-26 22:51:53 +00:00
Adam Fedor
0f4e4f317e * Headers/x11/XGServer.h: Add 8bit fast drawing.
* Source/x11/XGServer.m ([XGScreenContext
-initForDisplay:screen:]): For 8bit, test for RGB_BEST_MAP.
* Source/xlib/XGBitmap.m (_pixmap_combine_alpha,
_bitmap_combine_alpha, _pixmap_read_alpha): Add 8 bit case.
(patch from Paul Secchia <paul@worldnet.att.net>).


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@20033 72102866-910b-0410-8b05-ffd578937521
2004-09-08 16:22:00 +00:00
David Ayers
98036d3302 * Source/art/GNUmakefile: Do not make headers publilc.
* Source/gsc/GNUmakefile: Ditto.
        * Source/x11/GNUmakefile: Ditto.
        * Source/xdps/GNUmakefile: Ditto.
        * Source/xlib/GNUmakefile: Ditto.

        * Headers/win32/*.h: Update includes for new header structure.
        * Headers/winlib/*.h: Ditto.
        * Headers/x11/XGServer.h: Ditto.
        * Headers/xlib/*.h: Ditto.

        * Source/art/ftfont.m: Ditto.
        * Source/gsc/*.m: Ditto.
        * Source/x11/*.m: Ditto.
        * Source/xdps/*.m: Ditto.
        * Source/xlib/*.m: Ditto.

        * Tools/gpbs.m: Ditto.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@17409 72102866-910b-0410-8b05-ffd578937521
2003-07-31 23:57:11 +00:00
Adam Fedor
57f11eaa12 Add XIM Input Method, UPdate to wraster 0.80.2
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@17286 72102866-910b-0410-8b05-ffd578937521
2003-07-22 04:28:43 +00:00
Adam Fedor
9c50aaf19a Handle multiple screens.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@13531 72102866-910b-0410-8b05-ffd578937521
2002-04-23 21:05:50 +00:00
Adam Fedor
669a4955e9 Initial revision
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@13249 72102866-910b-0410-8b05-ffd578937521
2002-03-27 23:44:41 +00:00