Commit graph

540 commits

Author SHA1 Message Date
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
Wolfgang Lux
b0b86079ca Fix implementation of tracking rectangles to use the coordinate system
of their views, as they do under Cocoa.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@35645 72102866-910b-0410-8b05-ffd578937521
2012-10-06 19:42:56 +00:00