(_setupRootWindow, window::::): removed WindowMaker appicon hack and
- now unused - _wmAppIcon variable.
Description: The removed code removed creates and maps zero-sized
window in hope that WindowMaker will recognize app by this event and
create app icon window. Although when application requests window
for appicon through the `-window::::` method call, it returns newly
created and mapped window. This actually happens but application icon
flickers between WM icon creation and application icon window appearance.
This fix based on the fact that root application window (ROOT) is mapped
in `-orderwindow:::` and this is the event of application recognition
by WindowMaker because it is a first application window that is
mapped.
(_handleTakeFocusAtom:forContext:): if application (window) receives
WM_TAKE_FOCUS in hidden state it means WindowMaker wants us to be
unhidden.
Description: There are 2 protocols defined in XGServerWindow.h:
WMFHideApplication and WMFHideOtherApplications. These protocols exist
to help GNUstep application and WindowMaker notify each other
about "Hide" and "Hide Others" actions. There are no protocols for
"unhide" action.
Test case steps:
1. Open application with window opened.
2. Hide application with "Hide" menu item.
3. Open WindowMaker's "Windows" menu (middle-click on desktop).
4. Select hidden application window.
Application unhides, activates, restored window is focused (receives) input
and "Hide" menu item unselected.
(hideApplication:): send application's root window to WindowMaker (WM)
because it's a "group leader" that clearly identifies application
inside WM. WM uses XFindContext to get WApplication structure and
"group leader" window ID is a key to find it.
* Source/fontconfig/FCFaceInfo.m (-matchedPattern): Cache the
resolved pattern and return this. The method characterSet now uses
this cached pattern.
Patch by Josh Freeman <gnustep_lists@twilightedge.com>
Taken from the Debian "gnustep-back" package sources, which attribute
these changes to:
Author: Eric Heintzmann <heintzmann.eric@free.fr>
Author: Yavor Doganov <yavor@gnu.org>
The exception was not very informative about why exactly the
error message may occur. Weston in Debian buster doesn't
support the stable XDG Shell protocol, for instance, and
triaging this took some effort.
This now results in windows being painted on the screen. However, input is
still ending up in all the wrong places, and there is a lot of garbage content
being painted outside the actual windows.
Right clicking on a window seems to trigger rotate behavior, which needs to
be evaluated and likely removed (or prevented, if this is done by Weston).
Interestingly, checking for ->configured on first surface commit also seems to
break the backend.
Rearranging order of the code, freeing some memory, writing a note
that additional work is required, returning a value through pointer
passed as argument, etc.
* Source/gsc/GNUmakefile.preamble: do not overwrite ADDITIONAL_INCLUDE_DIRS
value to help RPM build. In spec file ADDITIONAL_INCLUDE_DIRS can be sat
to subdirectories which are create by RPM build tool.
in OpenStep and Xlib coordinate systems to decide if it was changed.
Rename `xVal` into more meaninful `xFrame` (holds temporary value of
window frame in Xlib coordiante system).
* 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.
even if specified frame is equal current. No events will be send to
-gui for this case but X11 window position will be refreshed. It fixes
misplacement of image in slideImage:from:to: (second and all subsequent
calls).
memeber was added - `osframe`. This member intended to hold cached frame
of windows in OpenStep coordinate system. This makes backend more
reliable to the cases when gui changes NSWindow's _frame ivar before
call to backend methods which make windows placement.
* Source/x11/XGServerWindow.m (placewindow::): use `osframe` structure
member to decide if window change position or size. Removed usage of
temporary `frame` (used only for making desicion).