Commit graph

541 commits

Author SHA1 Message Date
Sergii Stoian
ae555005e5 * Source/NSWindow.m (makeKeyAndOrderFront:): unhide/activate
application after ordering and making it key. This prevents
  focus flickering between current key window and this window
  on application activation.
  Do not try to set key and main if window can't be set as key.
2020-09-10 18:56:53 +03:00
Sergii Stoian
a61aa9f68f * Source/NSWindow.m (_applyFrame:): new helper method to do actual
resizing and repositionning.
  (setFrame:display:): use _applyFrame method.
  (applicationDidChangeScreenParameters:): use _applyFrame: method.
2020-03-05 23:27:31 +02:00
Sergii Stoian
96a3579e98 * Source/NSWindow.m (applicationDidChangeScreenParameters:):
Call backend's `placewindow::` directly because our origin in OpenStep
  coordinates might left unchanged and `setFrame:display:` has check
  for it.
2020-03-05 02:21:26 +02:00
Sergii Stoian
6d4afe9678 Merge branch 'master' into randr
Conflicts:
	ChangeLog
2020-03-05 02:19:23 +02:00
Sergii Stoian
fcbb4d704b * Source/NSWindow.m (center): always center window on main screen -
monitor where user expects to see window.
2020-02-28 02:18:20 +02:00
Sergii Stoian
f460e3f875 * Source/NSWindow.m (sendEvent:): removed usage of extra local variables
in GSAppKitWindowMoved code block.
2020-02-26 02:05:34 +02:00
Sergii Stoian
fe5616f5e1 * Source/NSWindow.m
(applicationDidChangeScreenParameters:): quit while loop after
  screen was found.
  (sendEvent:): use `_screen` ivar to get screen befor frame change.
2020-02-23 23:26:18 +02:00
Sergii Stoian
533be55806 * Source/NSWindow.m (setFrame:display:): use _screeForFrame: here
to prevent `_screen` reassign -  it will be reassigned in
  sendEvent: (GSAppKitWindowMoved event) after call to [self screen].
  (setFrameFromString:): removed unused code because _screenForFrame:
  never returns `nil`. Do not reassign `_screen` here.
2020-02-13 18:30:04 +02:00
Sergii Stoian
381c24cdf4 * Source/NSWindow.m (processEvent:): notification moved back here from
`screen` method. Placing posting notification into `screen` method
  is unreliable/dangerous - notification observer may call [NSWindow screen]
  which results in notification posting loop.
2020-02-12 13:55:15 +02:00
Sergii Stoian
4c531f04bc * Source/NSWindow.m (processEvent:): posting notification
NSWindowDidChangeScreenNotification moved into `screen`
  method.
2020-02-12 13:08:58 +02:00
Sergii Stoian
2a1b9d4d54 * Source/NSWindow.m (sendEvent:): set current screen to ivar and
send WindowDidChangeScreen notification if window was moved to other
  screen.

* Source/NSScreen.m (mainScreen): returns screen of main menu if no
  key window exists. With this implementation default screen (screen at
  index 0 in screens array) should never be returned.

* Source/NSMenu.m (initWithTitle:): observe WindowDidBecomeKey and
  WindowDidChangeScreen notifications.
  (windowDidChangeScreen:): new method to handle observed notification
  added above. Moves menu to screen of key window for both cases: when
  key window moved to or activated on different screen.
2020-02-12 01:46:17 +02:00
Sergii Stoian
1146f35276 * Source/NSWindow.m (applicationDidChangeScreenParameters:): use enumerator
to go through the list of screens. Removed commented out debug output.
2020-01-28 12:15:39 +02:00
Sergii Stoian
a4174f2838 * Source/NSWindow.m (applicationDidChangeScreenParameters): take into
account screen origin change during window position recalculation.

* Source/NSScreen.m (dealloc): debug output was removed.
2020-01-27 00:47:08 +02:00
Sergii Stoian
d4ea1a490f * Source/NSWindow.m (initWithContentRect:styleMask:backing:defer:):
added observer of NSApplicationDidChangeScreenParametersNotification.
  (applicationDidChangeScreenParameters:): callback for added notification -
  updates window position, set new screen object and saves frame if
  autosave name exists.

* Source/NSScreen.m (initialize): remove observer of
  NSApplicationDidChangeScreenParametersNotification - NSScreen shouldn't
  do it. Backend explicitely calls -resetScreens before posting notification.
  (_initWithScreenNumber:): ditto.
  (_resetScreens): removed.
  (deviceDescription): removed duplicated addition of NSDeviceSize object.

* Source/NSApplication.m (finishLaunching): remove observer of
  NSApplicationDidChangeScreenParametersNotification.
2020-01-26 03:13:16 +02:00
Sergii Stoian
e5a7cba164 * Source/NSWindow.m
(initialize): use MiniWindowTile image for miniwindow tile.
(drawRect:): adjusted position of title cell to fit tile image.
(setTitle:): disable drawing of title cell background;
use NSMiniControlSize font size for miniwindow title cell.

* Source/NSFont.m (systemFontSizeForControlSize:): increased default font
size for NSMiniControlSize.
2019-12-11 14:30:44 +02:00
Sergii Stoian
f018c2087b Added support for WindowMaker's WMFHideApplication action. 2019-04-05 14:07:33 +03:00
fredkiefer
7270f8efc7 Add new backingScaleFactor method on NSScreen. 2017-12-03 22:02:06 +01:00
fredkiefer
e3d51643ca Protect against [window screen] returning nil. 2017-10-05 23:05:28 +02:00
Daniel Ferreira
3e9cdce801 NSWindow: add stub for +windowNumberAtPoint:belowWindowWithWindowNumber:
Add stub for +[NSWindow windowNumberAtPoint:belowWindowWithWindowNumber:]
for compatibility purposes.
2017-08-27 01:42:00 +01:00
Daniel Ferreira
4f4db46c87 NSWindow: add stub for -backingScaleFactor
Add stub for -[NSWindow backingScaleFactor] for compatibility purposes.
2017-08-27 01:42:00 +01:00
Daniel Ferreira
07d0f2002f NS{Application,Window}: define modal constants
Define constants and stubs related to modal sheets in GUI for increased
compatibility.
2017-08-27 01:42:00 +01:00
Fred Kiefer
2f2bda5aa4 * Source/NSWindow.m (NSMiniWindowView -setImage:): Try to handle
an image value of nil. This is needed for Emacs.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@40168 72102866-910b-0410-8b05-ffd578937521
2016-10-23 20:36:14 +00:00
Fred Kiefer
810192f7e5 Small correction of last change.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@39129 72102866-910b-0410-8b05-ffd578937521
2015-11-03 08:15:02 +00:00
Fred Kiefer
b76a7b9593 * Source/NSWindow.m (-constrainFrameRect:toScreen:) Handle
screen being nil and resize only if moving is not enough.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@39126 72102866-910b-0410-8b05-ffd578937521
2015-11-02 21:14:11 +00:00
Riccardo Mottola
3ff8c0a8d7 fix spelling to american English
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@39101 72102866-910b-0410-8b05-ffd578937521
2015-10-28 01:49:12 +00:00
Riccardo Mottola
7a251b66ec Constants and methods for Expose and other features we don't have and perhaps never will
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@38942 72102866-910b-0410-8b05-ffd578937521
2015-08-28 22:39:48 +00:00
Gregory John Casamento
4213323979 Add more theme methods for theming windows.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@38687 72102866-910b-0410-8b05-ffd578937521
2015-06-26 00:13:05 +00:00
Sebastian Reitenbach
8060ece175 abs() -> fabs()
OK Fred Kiefer



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@38572 72102866-910b-0410-8b05-ffd578937521
2015-05-26 17:57:19 +00:00
Germán Arias
b0ab141b9a Fix tooltips issue with a change suggested by Fred.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@38262 72102866-910b-0410-8b05-ffd578937521
2014-12-26 07:59:29 +00:00
Gregory John Casamento
06f21dcd0d Change -[NSWindow constrainFrameRect:toScreen:] to correct x origin if needed.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@38046 72102866-910b-0410-8b05-ffd578937521
2014-08-18 16:16:52 +00:00
Gregory John Casamento
493e34b57e Remove uneeded code from NSWindow in initWithContentRect:
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@38013 72102866-910b-0410-8b05-ffd578937521
2014-07-25 11:32:54 +00:00
Fred Kiefer
59b1180d27 * Source/GSXibLoader.m (-awake:inContainer:withContext:): Allow
for subclasses of NSApplication as rootObjects.
        Based on patch by Marcian Lytwyn <gna@advcsi.com>.
        * Source/NSWindow.m (-userSpaceScaleFactor): Handle case where
        _screen is nil.
        Patch by Doug Simons (dsimons@testplant.com).
        * Source/NSWindow.m (-_screenForFrame:): Require real overlapp.
        Patch by Doug Simons (dsimons@testplant.com).
        * Source/NSTextField.m (-textDidChange:): Improve editing
        behavior when formatter returns a new string.
        Patch by Doug Simons (dsimons@testplant.com).


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37830 72102866-910b-0410-8b05-ffd578937521
2014-05-03 21:45:47 +00:00
Fred Kiefer
dcb4ac58f2 * Source/NSWindow.m: (-setFrame:): Revert last change.
* Source/NSWindow.m: (-encodeWithCoder:, -initWithCoder:): Use
  content min/max size instead of min/max size.
* Source/NSWindow.m: (+initialize): Increase version number to 3.
* Source/GSNibLoading.m (NSWindowTemplate -encodeWithCoder:,
  -initWithCoder:): Use NSWindowContentMinSize/NSWindowContentMaxSize
  instead of NSMinSize/NSMaxSize.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37828 72102866-910b-0410-8b05-ffd578937521
2014-05-03 18:32:20 +00:00
Gregory John Casamento
0b26fec21a Fix for issue with resize when using in-window menus.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37698 72102866-910b-0410-8b05-ffd578937521
2014-02-20 23:49:37 +00:00
Germán Arias
26a36530a1 Set _lastPoint only for mouse entered events.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37398 72102866-910b-0410-8b05-ffd578937521
2013-11-22 19:21:02 +00:00
Germán Arias
c713f8cb04 Fix last commit.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37215 72102866-910b-0410-8b05-ffd578937521
2013-10-09 19:45:55 +00:00
Germán Arias
123703e8e1 Send events mouse entered only if the cursor rectangle is valid.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37214 72102866-910b-0410-8b05-ffd578937521
2013-10-09 19:07:36 +00:00
Germán Arias
a0f6ce809f Set _lastPoint after update the cursor in NSWindow.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37213 72102866-910b-0410-8b05-ffd578937521
2013-10-09 18:52:39 +00:00
Fred Kiefer
9ad339a73a * Headers/Additions/GNUstepGUI/GSDisplayServer.h
* Source/GSDisplayServer.m: Add new method -_printEventQueue.
* Source/NSWindow.m (-_checkCursorRectangles:forEvent:): Replace
  hack with proper functions that handle cursor rectangles.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37026 72102866-910b-0410-8b05-ffd578937521
2013-08-30 11:27:10 +00:00
Fred Kiefer
aa9d40fcfd * Source/NSCursor.m (-mouseEntered:, -mouseExited:):
Add better debug output.
* Source/NSWindow.m (-_checkCursorRectangles:forEvent:): Add
hack that updates cursor rectangles more correctly.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@37022 72102866-910b-0410-8b05-ffd578937521
2013-08-27 21:00:42 +00:00
Fred Kiefer
32299abf5b * Headers/Additions/GNUstepGUI/GSDisplayServer.h
* Source/GSDisplayServer.m: Add new method -setIgnoreMouse::
        * with
        empty implementation.
        * Source/NSWindow.m (-setIgnoresMouseEvents:): Use this new
        * method.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36854 72102866-910b-0410-8b05-ffd578937521
2013-07-08 20:42:49 +00:00
Germán Arias
34d629e05a Improvements to handle cursors.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36802 72102866-910b-0410-8b05-ffd578937521
2013-07-02 16:57:54 +00:00
Gregory John Casamento
f14cc1f3bc * Headers/AppKit/NSPopover.h: correct delegate method
for popoverShouldClose:
	* Headers/AppKit/NSWindow.h: add convertRectToScreen: and
	convertRectFromScreen: methods.
	* Source/NSPopover.m: Correct delegate method for popoverShouldClose:.
	Changes to align popover window with rect it is being placed relative
	to.
	* Source/NSWindow.m: implementation of convertRectToScreen: and
	convertRectFromScreen: methods.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36577 72102866-910b-0410-8b05-ffd578937521
2013-04-24 09:25:56 +00:00
Fred Kiefer
ae607757b3 * Source/NSindow.m (-setDelegate:): Don't unregister delegate
notifications if same delegate is set twice.
        Patch by Doug Simons <doug.simons@testplant.com>


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36192 72102866-910b-0410-8b05-ffd578937521
2013-02-23 15:36:46 +00:00
Fred Kiefer
0561a46d2f Correct problems found by valgrind.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36188 72102866-910b-0410-8b05-ffd578937521
2013-02-22 15:39:29 +00:00
Fred Kiefer
b1fc7cb066 Correct coding/decoding after type changes.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36160 72102866-910b-0410-8b05-ffd578937521
2013-02-17 16:53:48 +00:00
Fred Kiefer
270baf4037 More CGFloat, NSUInteger and NSInteger changes.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36148 72102866-910b-0410-8b05-ffd578937521
2013-02-16 00:08:33 +00:00
David Chisnall
4850a9feac Fix all current compiler warnings on FreeBSD/x86-64.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36038 72102866-910b-0410-8b05-ffd578937521
2013-01-30 09:48:54 +00:00
Fred Kiefer
a612305757 First set of NSInteger/NSUInteger cleanup in gui.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@36029 72102866-910b-0410-8b05-ffd578937521
2013-01-27 20:28:35 +00:00
Fred Kiefer
e85b16bc05 Merge selected changes from testplant branch.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@35681 72102866-910b-0410-8b05-ffd578937521
2012-10-13 18:43:38 +00:00