Commit graph

176 commits

Author SHA1 Message Date
Sergii Stoian
d1dd3f0f5c * Source/x11/XGServerWindow.m (ALPHA_THRESHOLD): removed duplicate of
definition.
2020-01-14 10:52:59 +02:00
Sergii Stoian
9e298b2142 * Source/x11/XGServerWindow.m (alphaMaskForImage):
(imagecursor:::): renamed missed image_mask() call.
2020-01-14 02:05:07 +02:00
Sergii Stoian
f9a9d6679b * Source/x11/XGServerWindow.m (alphaMaskForImage): renamed from
image_mask().
  (swapColors): new function to convert colors from ARGB order into RGBA
  (big-endian systems) or BGRA (little-endian systems).
  (_createAppIconPixmaps): use swapColors() and remove unused code.
  (restrictWindow:toImage:): use alphaMaskForImage().
  (imagecursor:::): use swapColors() and remove unused code.
2020-01-14 01:58:30 +02:00
Sergii Stoian
528660834c * Source/x11/XGServerWindow.m (_createNetIcon:result:size:): fixed
off-by-one mistake during alpha handling. Enable disabled code and
  remove temprorary one.
  (window::::): set NetWM icon to window for all EWMH capable WMs even
  it's WindowMaker.
  (image_mask): new function to create alpha mask for image. It's based
  on xgps_cursor_mask() code with additional argument `alpha_treshold`.
  This function may be used for images (alpha_treshold == 0) with real
  alpha mask and for cursors (if no Xcursor library is used - no alpha
  is used, no shadows in cursors, alpha_treshold == 158 is used to cut
  transparent pixels).
  (_createAppIconPixmaps): icon pixmap creation rewritten to support
  images with alpha channel using wraster functions. Use image_mask().
  (restrictWindow:toImage:): use image_mask() instead of
  xgps_cursor_mask().
  (xgps_cursor_mask): removed as image_mask() replaced it.
  Guard xgps_cursor_image( with #if - will not be compiled if Xcursor
  is used.
  (imagecursor:::): use image_mask() instead of xgps_cursor_mask().
2020-01-13 01:34:11 +02:00
Sergii Stoian
00a1180684 * Source/x11/XGServerWindow.m (standardcursor::): Getting of
XC_fleur as GSCloseHandCursor was removed because it loads in
NSCursor as image.
2019-04-20 02:01:40 +03:00
Sergii Stoian
39e2e16bec * Source/x11/XGServerWindow.m (standardcursor::): revert resizing
cursor names to the old values upon request of project owner.
2019-04-18 01:22:57 +03:00
Sergii Stoian
d4a4888b9d * Source/x11/XGServerWindow.m (getStandardBitmap): send bitmapFormat
to _convertToFormatBitsPerSample::::::::. Fixes display of colored
mouse cursor images.
(standardcursor::): cleanup in Xlib cursors handling. Additional
cursor types were added: GSClosedHandCursor, GSOpenHandCursor.
Removed GSDisappearingItemCursor type handling - it loads in NSCursor
from image.
2019-04-17 18:06:19 +03:00
Sergii Stoian
2f4c96f9d1 hidewindow method was renamed to hideApplication. 2019-04-06 22:32:29 +03:00
Sergii Stoian
b492ac87cd Added support for WindowMaker's WMFHideApplication action. 2019-04-05 14:46:05 +03:00
Sergii Stoian
233c129a5c WM_IGNORE_FOCUS_EVENTS atom was added. Use new atom in orderwindow::: code added in last commit. 2019-04-03 19:13:30 +03:00
Sergii Stoian
a6595e320d Map application icon window without focus switch for applications executed with argument -autolaunch YES in WindowMaker environment. 2019-04-02 19:38:44 +03:00
Sergii Stoian
0374820172 Set Utility window type for NSFloatingWindowLevel. 2019-03-26 17:12:55 +02:00
fredkiefer
7ee9b40793 * Source/x11/XGServerWindow.m (_setupRootWindow): Make sure the
root name variable is null terminated.
2018-07-16 08:39:55 +02:00
fredkiefer
6e797c9e6d * Source/x11/XGServerWindow.m: Check for bytes_after_ret in
PropGetCheckProperty. Attempt to improve the window border detection.
Based on idea by Tom MacSween <Tom.MacSween@crins-sinrc.ca>
2018-06-20 07:49:36 +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
Fred Kiefer
3adb72d6e2 Fix some clang static analyser warnings reported by
Sebastian Reitenbach <sebastia@l00-bugdead-prods.de>.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@40485 72102866-910b-0410-8b05-ffd578937521
2017-04-16 11:57:05 +00:00
Fred Kiefer
9f84d3e7fc * Headers/x11/XGGeneric.h: Remove obsolte atom.
* Source/x11/XGServerWindow.m: Clean up code.
	* Source/x11/XGServerWindow.m (-setwindowlevel::): Try to set
	better level for tool tip windows.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@40295 72102866-910b-0410-8b05-ffd578937521
2017-01-17 22:01:52 +00:00
Fred Kiefer
168e6f1347 * Source/x11/XGServerWindow.m (-_checkStyle:): Ignore invalid
border information.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@40286 72102866-910b-0410-8b05-ffd578937521
2017-01-08 21:01:01 +00: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
Wolfgang Lux
1e1185abb3 Create an empty app icon window before eventually checking the window
frame offsets when using WindowMaker. This fixes the issue that the
first GNUstep application started under WindowMaker did not get a
proper application menu.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@39171 72102866-910b-0410-8b05-ffd578937521
2015-11-13 15:30:15 +00:00
Fred Kiefer
042f6f3761 * Source/x11/XGServerEvent.m (-processEvent:): Reenable
Richard's frontend based expose code.
        * Source/x11/XGServerWindow.m (-window::::, -_checkStyle:):
        Don't use CWBackPixel, as the window background may be different.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@38419 72102866-910b-0410-8b05-ffd578937521
2015-03-22 15:15:20 +00:00
Fred Kiefer
59723d8e42 * Headers/x11/XGGeneric.h
* Source/x11/XGServerWindow.m: Correct name for atom
        net_wm_state_modal_atom. Use this atom to try to set the sate
        for dialog windows to modal.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@38417 72102866-910b-0410-8b05-ffd578937521
2015-03-21 18:53:46 +00:00
Niels Grewe
51973502b0 Roll back addition of redundant method.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@37539 72102866-910b-0410-8b05-ffd578937521
2014-01-05 23:03:35 +00:00
Fred Kiefer
6cf28f1c50 * Source/x11/XGServerWindow.m(-_checkStyle:): Change NSLog into
NSDebugLLog.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@37535 72102866-910b-0410-8b05-ffd578937521
2014-01-05 16:40:32 +00:00
Niels Grewe
d499d53e75 Add a method to GSDisplayServer that allows you to obtain the
identifier used by the backend's windowing system instead of
just the GNUstep-internal window number. On X11, the identifier
is useful, among other things, to implement the D-Bus menu 
protocol.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@37533 72102866-910b-0410-8b05-ffd578937521
2014-01-01 19:45:26 +00:00
Fred Kiefer
91e1e5c8d4 * Source/x11/XGServerWindow.m (-_createBuffer, -windowbacking::,
-setWindowdevice:forContext:): Move code from last patch around a bit.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@37475 72102866-910b-0410-8b05-ffd578937521
2013-12-18 22:34:20 +00:00
Eric Wasylishen
14d77dbfee * Source/x11/XGServerWindow.m (-_createBuffer): Fix a big
memory leak noticed by Riccardo with the cairo backend,
by #ifdef-ing out this method when using cairo.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@37471 72102866-910b-0410-8b05-ffd578937521
2013-12-18 17:40:21 +00:00
Fred Kiefer
6f2602b8dd * Source/x11/XGServerWindow.m (-setIgnoreMouse::): Completely
rewrite this method to use Xfixes.
        * Source/win32/WIN32Server.m (-setIgnoreMouse::): Implement a
        Windows version of this method.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@36861 72102866-910b-0410-8b05-ffd578937521
2013-07-09 21:23:20 +00:00
Fred Kiefer
e74cf49cda * Source/x11/XGServerWindow.m (-setIgnoreMouse::): New method
that allows to ignore mouse events for a window.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@36855 72102866-910b-0410-8b05-ffd578937521
2013-07-08 20:46:07 +00:00
Fred Kiefer
7b2bd47f1f Fix compiler warnings reported by
Sebastian Reitenbach <sebastia@l00-bugdead-prods.de>


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@36165 72102866-910b-0410-8b05-ffd578937521
2013-02-18 20:29:10 +00:00
Fred Kiefer
6c450e3ea6 Adopt to changes in gui.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@36149 72102866-910b-0410-8b05-ffd578937521
2013-02-16 00:11:14 +00:00
Fred Kiefer
5a5f73e79c Silence warnings from clang.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@36106 72102866-910b-0410-8b05-ffd578937521
2013-02-10 17:32:47 +00:00
Wolfgang Lux
ccde063b3e Fix for big endian machines.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@35587 72102866-910b-0410-8b05-ffd578937521
2012-09-21 20:32:05 +00:00
Wolfgang Lux
074b625584 Fix the brain-dead commits I made this morning.
Looks like I wasn't awake then ...


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@34595 72102866-910b-0410-8b05-ffd578937521
2012-01-19 21:37:35 +00:00
Wolfgang Lux
fce27ac4bd Change order of atoms in client message; at least metacity seems to
ignore the _NET_WM_STATE_STICKY_ATOM otherwise.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@34590 72102866-910b-0410-8b05-ffd578937521
2012-01-19 09:44:50 +00:00
Wolfgang Lux
cc2cffa7e8 Add GS prefix to the names of the new user defaults.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@34587 72102866-910b-0410-8b05-ffd578937521
2012-01-19 09:14:57 +00:00
Wolfgang Lux
8edd54c5fb Introduce new user defaults to respectively make app icons and mini
windows sticky (aka omnipresent).


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@34586 72102866-910b-0410-8b05-ffd578937521
2012-01-19 09:05:09 +00:00
Fred Kiefer
3cc89b962e Protect usage of shape extension.
Should fix bug #34552.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@34016 72102866-910b-0410-8b05-ffd578937521
2011-10-17 11:28:54 +00:00
Eric Wasylishen
337ce46bba * Source/win32/WIN32Server.m (-resolutionForScreen:):
Scale the result by 0.75 so the Windows default of 96 DPI is
mapped to the GNUstep default of 72 DPI. While this sounds wrong,
72 and 96 are just "virtual" DPI's; both mean 1 point = 1 pixel,
so it's actually the right thing to do.
* Source/x11/XGServerWindow.m (-resolutionForScreen:):
Comment out the implementation and just return 72 for now,
because I'm not sure if we can trust the value the X server
gives us.

NOTE: Currently -gui ignores these methods and only looks at the
GSScaleFactor user default. I'm going to make -gui use the server
values now, because it's safe to do so on Windows (the system
DPI is set by the user, and affects all applications.)

NOTE: We might consider refactoring these methods to be called
scaleFactorForScreen: to make it clearer what they do.

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@33658 72102866-910b-0410-8b05-ffd578937521
2011-07-30 20:39:10 +00:00
Eric Wasylishen
726d4a0801 * Source/x11/XGServerWindow.m: Add Xcursor support (for RGBA
imagecursor support.) configure test is still TODO, so it isn't
compiled in at the moment.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@33563 72102866-910b-0410-8b05-ffd578937521
2011-07-15 19:05:44 +00:00
Eric Wasylishen
1554a718dc * Headers/x11/XGGeneric.h
* Source/x11/XGServerWindow.m: Add new netwm window state atoms


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@33549 72102866-910b-0410-8b05-ffd578937521
2011-07-14 19:09:17 +00:00
Wolfgang Lux
938f716f55 Enlarge protocol array to make space for the _NET_WM_SYNC_REQUEST
protocol atom.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@33224 72102866-910b-0410-8b05-ffd578937521
2011-06-01 20:56:27 +00:00
David Chisnall
7d3d3852c9 Call NSZoneFree() on pointer allocated with NSAllocateCollectable(), not free(). This is a no-op in GC mode, and will free the memory in non-GC mode.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@33148 72102866-910b-0410-8b05-ffd578937521
2011-05-27 13:53:57 +00:00
David Chisnall
1b26d9be44 Use NSAllocateCollectable() for some things that store pointers.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@33106 72102866-910b-0410-8b05-ffd578937521
2011-05-24 16:37:26 +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
0f82f1a833 Fixes warnings reported by clang.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@32823 72102866-910b-0410-8b05-ffd578937521
2011-04-09 17:10:49 +00:00
Fred Kiefer
80eab30de7 Extract the bitmap conversion into a local function and use it througout the file.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@32643 72102866-910b-0410-8b05-ffd578937521
2011-03-18 09:29:01 +00:00
Fred Kiefer
8913452ffc Change the way the image for the cursor gets passed on to the backend.
The old way could only work for 8 bit data.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@32492 72102866-910b-0410-8b05-ffd578937521
2011-03-07 19:45:20 +00:00
Fred Kiefer
5125141980 Implement the ne cursor backend methods.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@32180 72102866-910b-0410-8b05-ffd578937521
2011-02-15 22:54:51 +00:00
Wolfgang Lux
f85e6a7f1d Ooops, a closing parenthesis got lost in the last commit :-(
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@32167 72102866-910b-0410-8b05-ffd578937521
2011-02-14 22:44:55 +00:00