Commit graph

549 commits

Author SHA1 Message Date
Fred Kiefer
efff658f82 * Source/NSWindow.m (GSOrderedWindows): Don't try to handle
already gone windows that may be returned from a slow window manager.
2021-01-22 14:53:15 +01:00
Sergii Stoian
f7f80ecf8a * Source/NSWindow.m (makeKeyAndOrderFront:): unhide/activate
application after ordering and making it key. This prevents
  focus flickering between current key window and this window
  during application activation.
  Do not try to set key and main if window can't be set as key.
2020-09-11 12:52:09 +03:00
Gregory John Casamento
d41635855f Force tabViewType to be something we support. To be fixed in a later branch to add other renderings for tabview since this branch is specific to controllers 2020-07-26 05:37:25 -04:00
Gregory John Casamento
73b03350b6 Remove comments and make improvements to code suggested by fred 2020-07-06 04:40:36 -04:00
Gregory John Casamento
11b5b4d2d6 Add proxy objects to perform segue 2020-07-02 13:24:48 -04:00
Gregory John Casamento
562e1868b3 Add setIsVisible method. It is 10.0 and was missing for some reason. 2020-06-24 11:13:38 -04:00
fredkiefer
db28f7b420 Small formatting changes, but plenty of these. 2020-05-16 00:15:38 +02:00
fredkiefer
be12d7bd1e * Source/NSWindow.m (-makeFirstResponder, -sendEvent:): Correct
handling of new first responder not becoming first responder.
Patch suggested by Josh Freeman <pikopixel@twilightedge.com>.
2020-05-14 23:10:43 +02:00
fredkiefer
cad8383e62 * Source/NSWindow.m (-initWithContentRect:...defer:): Call
setFrame:display: to ensure the minium and maximum size gets enforced.
* Source/NSFont.m (-description): Add this method.
2020-05-08 22:41:09 +02: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