summaryrefslogtreecommitdiffstats
path: root/unix/tkUnixWm.c
Commit message (Collapse)AuthorAgeFilesLines
* Minor syntactic stuffdkf2007-02-271-89/+94
|
* various "const" additions, in line with TIP #27nijtmans2007-01-051-3/+3
| | | | fix bug #1627732
* Fix warnings and (unfortunately introduced with last commit) errorsdkf2006-12-111-15/+24
|
* Support the _NET_WM_PING protocol from EWMH. There's no reason to dodkf2006-12-111-36/+119
| | | | | anything other than what is implemented, so no need for additional script control over it.
* * win/tkWinEmbed.c (TkpGetOtherWindow): [Bug 1212056] do not panichobbs2006-05-291-3/+9
| | | | | | * unix/tkUnixEmbed.c (TkpGetOtherWindow): if no window is found - * unix/tkUnixWm.c (Tk_CoordsToWindow, UpdateGeometryInfo): handle it in the caller
* Added support for [wm attributes] on X11 [TIP#231, patch#1062022].jenglish2005-11-161-26/+374
|
* Whitespace/style/ANSI improvementsdkf2005-10-211-1538/+1490
|
* * macosx/tkMacOSXWm.c (TkWmStackorderToplevelWrapperMap, ↵mdejong2005-04-071-5/+7
| | | | | | | | | | | TkWmStackorderToplevel): * unix/tkUnixWm.c (TkWmStackorderToplevelWrapperMap, TkWmStackorderToplevel): * win/tkWinWm.c (TkWmStackorderToplevelWrapperMap, TkWmStackorderToplevel): Fix panic in wm stackorder when a toplevel is created on another diplay. The code now ignores toplevels that have a display that does not match the display of the parent window. [Bug 1152809]
* silence compiler warningsdgp2004-10-061-5/+5
|
* * doc/wm.n (iconphoto): added support for Tk photohobbs2004-10-051-3/+201
| | | | | | | | * generic/tkInt.h (TkDisplay): images as titlebar icons. TIP #159 * win/tkWinWm.c (WmIconphotoCmd): wm iconphoto ?-default? image1 ... * macosx/tkMacOSXWm.c (WmIconphotoCmd): Implemented for Win/Unix, * unix/tkUnixWm.c (WmIconphotoCmd): stubbed out for OS X. * tests/wm.test, tests/unixWm.test, tests/winWm.test: [Bug 815751]
* Cast argument 7 of XChangeProperty to 'const unsigned char *'jenglish2004-08-191-3/+4
| | | | | (from 'const char *') to satisfy Solaris 8 Forte C compiler [Bug #1012325]
* Fix for #1006686 "wm resizable command not working on Solaris/CDE"jenglish2004-08-101-1/+3
| | | | (patch from Colin McDonald).
* Set _NET_WM_NAME and _NET_WM_ICON_NAME (freedesktop.org)jenglish2004-07-051-36/+67
| | | | | | | in addition to WM_NAME and WM_ICON_NAME (ICCCM). This allows the full Unicode character set to be used in window manager strings (but only for newer WMs that support the EWMH spec). [Tk Bug #959973]
* Fix for #742882 "Potential division by zero in gridded wm geometry"jenglish2004-06-161-5/+15
|
* Fix for bug #915350 "Tk sets min, max size in WM_HINTS when it shouldn't"jenglish2004-04-041-2/+9
| | | | and #922336 "Tk apps have no maximize window button under KDE-3.2.1"
* Replaced TclpGetTime() with Tcl_GetTime(), to removejenglish2004-01-311-3/+2
| | | | dependency on tclInt.h [Bug 874745].
* * generic/tk3d.c: All uses of 'panic' (the macro) changeddavygrvy2004-01-131-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * generic/tkBind.c: to 'Tcl_Panic' (the function). The #define * generic/tkBitmap.c: of panic in tcl.h clearly states it is * generic/tkCanvArc.c: deprecated in the comments. * generic/tkCanvBmap.c: [Tcl Patch 865264] * generic/tkCanvImg.c: * generic/tkCanvLine.c: * generic/tkCanvPoly.c: * generic/tkCanvText.c: * generic/tkCanvWind.c: * generic/tkColor.c: * generic/tkConfig.c: * generic/tkCursor.c: * generic/tkError.c: * generic/tkEvent.c: * generic/tkFocus.c: * generic/tkFont.c: * generic/tkFrame.c: * generic/tkGC.c: * generic/tkGrid.c: * generic/tkImgBmap.c: * generic/tkImgPhoto.c: * generic/tkImgUtil.c: * generic/tkMenu.c: * generic/tkObj.c: * generic/tkPack.c: * generic/tkPlace.c: * generic/tkRectOval.c: * generic/tkSelect.c: * generic/tkText.c: * generic/tkTextBTree.c: * generic/tkTextDisp.c: * generic/tkTextImage.c: * generic/tkTextIndex.c: * generic/tkTextMark.c: * generic/tkTextWind.c: * generic/tkVisual.c: * generic/tkWindow.c: * mac/tkMacAppInit.c: * mac/tkMacAppearanceStubs.c: * mac/tkMacButton.c: * mac/tkMacDraw.c: * mac/tkMacEmbed.c: * mac/tkMacFont.c: * mac/tkMacInit.c: * mac/tkMacMenus.c: * mac/tkMacPort.h: * mac/tkMacSubwindows.c: * mac/tkMacWm.c: * mac/tkMacXStubs.c: * macosx/tkMacOSXEmbed.c: * macosx/tkMacOSXFont.c: * macosx/tkMacOSXMenus.c: * macosx/tkMacOSXNotify.c: * macosx/tkMacOSXPort.h: * macosx/tkMacOSXSubwindows.c: * macosx/tkMacOSXWm.c: * macosx/tkMacOSXXStubs.c: * unix/tkUnix3d.c: * unix/tkUnixColor.c: * unix/tkUnixEmbed.c: * unix/tkUnixEvent.c: * unix/tkUnixFocus.c: * unix/tkUnixFont.c: * unix/tkUnixSelect.c: * unix/tkUnixSend.c: * unix/tkUnixWm.c: * win/tkWin3d.c: * win/tkWinButton.c: * win/tkWinColor.c: * win/tkWinDialog.c: * win/tkWinDraw.c: * win/tkWinEmbed.c: * win/tkWinFont.c: * win/tkWinPixmap.c: * win/tkWinPointer.c: * win/tkWinScrlbr.c: * win/tkWinWm.c: * win/tkWinX.c:
* Delete WM_TRANSIENT_FOR property instead of setting it to Nonejenglish2003-10-151-7/+10
| | | | when making a window nontransient [Bug #632816 "cannot remove transient"]
* * doc/wm.n (minimize, maximize): Remove claimmdejong2003-03-121-24/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | that the resizable command keeps scripts from changing the size of windows since it is not true. The resizable command only applies to user sizing via user interaction. * tests/unixWm.test: Replace broken tests with the nonPortable constraint with new tests for maxsize and minsize options. These tests verify that setting the minsize and maxsize will resize the window if needed, and that the wm hints will be updated with the new sizes. * tests/wm.test: Add an exhaustive set of tests for the wm maxsize and wm minsize commands. These tests verify that setting the minsize and maxsize will resize the window if needed. These tests have only been run under Win98 and Window Maker under Linux, so further tweaking may be needed for other systems. * unix/tkUnixWm.c (UpdateGeometryInfo, UpdateSizeHints): Fixup comments and initialization for the minWidth, minHeight, maxWidth, maxHeight, width, and height members of the WmInfo struct. Check to ensure that a new toplevel window size is not larger than the maxsize or smaller than the minsize when updating the geometry at idle time. Pass new width and height values to the UpdateSizeHints method so that it can properly set the window min and max sizes for a window that cannot be resized by the user. This fixes a bug where the window resizes back to the original size when the user clicks on the window border. * win/tkWinWm.c (UpdateGeometryInfo): Fixup comments and initialization for the minWidth, minHeight, maxWidth, maxHeight, width, and height members of the WmInfo struct. Check to ensure that a new toplevel window size is not larger than the maxsize or smaller than the minsize when updating the geometry at idle time. [Patch 568861]
* WaitForEvent(): process Map and Unmap eventsjenglish2002-12-271-9/+13
| | | | | | | as well as Configure events during WaitFor{Configure|Map}Notify. Fixes [Bug 578569] (WaitForMapNotify could process Map and Unmap events out of order, making Tk think a window was unmapped when it really wasn't).
* * tests/wm.test: Add wm-transient-6.3 tomdejong2002-12-011-17/+9
| | | | | | | | | | | check that a transient remains withdrawn when it is first withdrawn and then turned into a transient. * unix/tkUnixWm.c: * win/tkWinWm.c: Replace WM_TRANSIENT_WITHDRAWN with WM_WITHDRAWN and set this flag whenever a window is explicitly withdrawn. This fixes the test case added above. [Bug 644356]
* * tests/wm.test:hobbs2002-09-021-155/+18
| | | | | * unix/tkUnixWm.c: remove possible 2-second delay in 'raise'. [Patch #601518] (english) TIP #107
* * unix/tkUnixWm.c (WmTransientCmd): Apply fix formdejong2002-08-081-4/+4
| | | | | wm transient assertion error that was applied to tkWinWm.c for Tk Bug #592201.
* * tests/wm.test: Add deleteWindows at start ofmdejong2002-08-081-4/+18
| | | | | | | new transient tests so they do not fail if the toplevels already exist. * unix/tkUnixWm.c: Revert patch for Tk Bug #592201 which incorrectly removed numTransients member.
* Fix for Tk Bug #592201 "wm transient fails with two masters".jenglish2002-08-081-18/+4
|
* Applied companion patch for Tcl Patch 585105,dgp2002-08-051-6/+6
| | | | | | | | | | | | | | | | | | | | | updating Tk to use Tcl 8.4's fully CONST-ified interface, and fully CONSTifying Tk at the same time. This patch includes purging Tk of its last direct access to interp->result. [Bug 589853] The substantial changes include copying event sequence strings into Tcl_DStrings in tkBind.c, and copying [text] indices into Tcl_DStrings because parsing them involved overwriting them. If this causes performance trouble, that can be resolved by further converting them to Tcl_Obj's. The #defines USE_NON_CONST and USE_COMPAT_CONST have the same effect for Tk as they do for Tcl. (They actually change tcl.h)
* different method of silencing compiler warning.dgp2002-08-021-3/+3
|
* silenced compiler warningdgp2002-08-021-2/+3
|
* Objectifed wm. [Patch #564521]pspjuth2002-07-251-1149/+2112
|
* * tests/wm.test: Remove invalid minsize test. Add updatemdejong2002-06-241-4/+4
| | | | | | | | | | calls to wm transient tests so that idle handlers get run. This is needed to get the tests to pass under Win32. * unix/tkUnixWm.c (WmWaitMapProc): Move the special transient withdrawn check into the if body to make it easier to set a breakpoint on this test inside a debugger. No functional changes. * win/tkWinWm.c (WmWaitVisibilityOrMapProc): Ditto.
* * doc/wm.n: TIP #95 Windows implementation andhobbs2002-06-221-3/+11
| | | | | | | | * mac/tkMacWm.c (Tk_WmCmd): docs with mac and unix stubs. * unix/tkUnixWm.c (Tk_WmCmd): * win/tkWinWm.c (Tk_WmCmd): * tests/unixWm.test: * tests/winWm.test: more wm attr tests will be needed.
* * tests/wm.test: Add tests to make sure a withdrawnmdejong2002-06-221-2/+19
| | | | | | | | | | | transient does not get remapped by state changes in the master. * unix/tkUnixWm.c (Tk_WmCmd, WmWaitMapProc): * win/tkWinWm.c (Tk_WmCmd, WmWaitVisibilityOrMapProc): Add a WM_TRANSIENT_WITHDRAWN flag that gets set by the withdraw, deiconify, or state wm subcommands. Check this flag before mapping a transient when processing a MapNotify event. [Tk bug 570764]
* * generic/tkInt.h:hobbs2002-06-151-17/+27
| | | | | | | * generic/tkCmds.c (Tk_WmObjCmd): * unix/tkUnixWm.c (Tk_WmCmd): * win/tkWinWm.c (Tk_WmCmd): changed wmTracing from being an int to just a bit in the flags variable (TK_DISPLAY_WM_TRACING)
* TIP #47 "Modifying Tk to Allow Writing X Window managers"jenglish2002-06-141-10/+33
| | | | | | | | (patch from Neil McKay). * Add CirculateRequest, Create, MapRequest, ResizeRequest, and ConfigureRequest event types; * Split TK_TOPLEVEL flag into TK_TOPLEVEL, TK_HAS_WRAPPER, TK_WIN_MANAGED, and TK_TOP_HIERARCHY.
* * changes: Add note about new transient behavior.mdejong2002-06-121-7/+122
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * tests/unixWm.test: Check that the WM_TRANSIENT_FOR property for a transient window is being cleared when the master is destroyed. * tests/wm.test: Source defs.tcl instead of using tcltest to match the rest of Tk's test files. Add new tests that ensure that a transient's state mirrors the state of the master. * unix/tkUnixWm.c (WmInfo, TkWmNewWindow, TkWmMapWindow, TkWmDeadWindow, Tk_WmCmd, WmWaitMapProc): Add numTransients member to WmInfo structure. Keep state of master and transient in sync using a callback that tracks MapNotify and UnmapNotify events. When the master is mapped, map the transient. When the master is unmapped or iconified, withdraw the transient. * win/tkWinWm.c (TkWmMapWindow, TkpWmSetState, TkWmDeadWindow, Tk_WmCmd, WmWaitVisibilityOrMapProc): Keep state of master and transient in sync using a callback that tracks MapNotify and UnmapNotify events. Move masterPtr check from TkpWmSetState into TkWmMapWindow to deal with WM_NEVER_MAPPED transients. Cleanup numTransients and the callback in TkWmDeadWindow. Cleanup numTransients and the callback only after deleting a master in wm transient command to avoid deleting the callback when an error is raised. Add support for MapNotify and UnmapNotify events to the master callback.
* * changes: Document [wm transient .t .t] error.mdejong2002-05-271-2/+9
| | | | | | | | | | | | | | * tests/wm.test: Check that setting a window as a transient of itself raises an error. Check that passing a non-toplevel window to the wm transient command uses the enclosing toplevel. * unix/tkUnixWm.c (Tk_WmCmd): Raise an error if the user tries to make a toplevel a transient of itself. * win/tkWinWm.c (Tk_WmCmd): Raise an error if the user tries to make a toplevel a transient of itself. Test for other error before checking for the transient self error.
* * unix/tkUnixWm.c (WmInfo, TkWmCleanup, TkWmNewWindow,mdejong2002-05-271-40/+22
| | | | | | | | | TkWmMapWindow, TkWmDeadWindow, Tk_WmCmd): Replace WmInfo's master and masterWindowName members with a masterPtr member. This implementation is much simpler and mirrors the Win32 implementation. This change makes it easy to check the flags of the master window. No user visible changes.
* * generic/tkInt.decls: Add unix decl for TkpWmSetState.mdejong2002-05-271-64/+80
| | | | | | | | | | | * generic/tkIntPlatDecls.h: Regen. * generic/tkStubInit.c: Regen. * tests/wm.test: Test state changes between iconic, normal, and withdrawn both before and after initial mapping. * unix/tkUnixWm.c (Tk_WmCmd, TkpWmSetState): Move state change code into TkpWmSetState to more closely match the Win32 implementation. No functional changes.
* * mac/tkMacWm.c (Tk_WmCmd):mdejong2002-05-241-1/+19
| | | | | | | | | | | * tests/unixWm.test: Move wm transient checks over to wm.test so they will be run on all systems. * tests/wm.test: Add tests to check for error when an iconwindow is passed to the wm transient command. * unix/tkUnixWm.c (Tk_WmCmd): * win/tkWinWm.c (Tk_WmCmd): Raise an error if one of the windows passed to the wm transient command is an iconwindow for another toplevel.
* * mac/tkMacWm.c (TkWmStackorderToplevelWrapperMap):mdejong2002-05-231-2/+3
| | | | | | | | * tests/wm.test: Add embedded Window test case for the stackorder command. * unix/tkUnixWm.c (TkWmStackorderToplevelWrapperMap): * win/tkWinWm.c (TkWmStackorderToplevelWrapperMap): Ignore embedded windows during wm stackorder command.
* * unix/tkUnixWm.c (TkWmStackorderToplevel): ensure childrenhobbs2002-04-121-50/+96
| | | | | | | | | | structure is freed. (ConfigureEvent, ComputeReparentGeometry): Add extra wm tracing info (TkWmRestackToplevel): initialize changes to 0 to prevent UMR. Use WaitForConfigureNotify on all windows. This part still requires fixing as it is the root of the 2 second raise delay on some window managers (those that use extra wrapper windows of their own).
* * doc/wm.n:mdejong2002-04-101-2/+2
| | | | | | | | | * mac/tkMacWm.c: * tests/wm.test: * unix/tkUnixWm.c: * win/tkWinWm.c: Update wm stackorder usage message to make it clear that either 1 or 3 arguments are required. [Bug 540013]
* * unix/tkUnixWm.c (CreateWrapper): Removed redundat setting ofhobbs2002-04-051-4/+1
| | | | inputContext to null.
* * Updated callers of Tcl_SplitList and Tcl_Merge.dgp2002-01-251-4/+5
| | | | | | | | | * Updated callers of Tcl_GetStringResult. Rewrote PrintScrollFractions to ScrollFractions to stop scribbling directly on interp->result. * Updated callers of Tcl_GetVar, Tcl_GetVar2 * Updated callers of Tcl_SplitPath, Tcl_JoinPath, and Tcl_TranslateFileName.
* (TkWmStackorderToplevelWrapperMap): added statichobbs2001-12-131-2/+3
|
* Add TK patch 481148 to implement TIP 74, themdejong2001-12-041-4/+228
| | | | | | | | | | | | | | | | | | | | | | | | | | wm stackorder command. * doc/winfo.n: Update documentation for the winfo children command to indicate that top-level windows are not returned in stacking order. * doc/wm.n: Add documentation for wm stackorder. * generic/tkInt.decls (TkWmStackorderToplevel): Add decl for new function. * generic/tkIntDecls.h: Regen. * generic/tkStubInit.c: Regen. * tests/unixWm.test: Add stackorder command to test for wm command usage message. * tests/wm.test: Add new set of tests for generic window manager methods. * unix/tkUnixWm.c (Tk_WmCmd, TkWmStackorderToplevelWrapperMap, TkWmStackorderToplevel): Add unix implementation of new wm stackorder command. * win/tkWinWm.c (Tk_WmCmd, TkWmStackorderToplevelEnumProc, TkWmStackorderToplevelWrapperMap, TkWmStackorderToplevel): Add windows implementation of new wm stackorder command.
* * unix/tkUnixWm.c (TkWmRestackToplevel): reworked howhobbs2001-08-281-16/+19
| | | | | | | ConfigureNotify requests were handled in relation to the parent to avoid the problem with potential 'raise' delays on some wms. [Bug #220260] (baker) wms that were affected should notice the difference in tests unixWm-51.* not failing that failed before.
* * unix/tkUnixWm.c: Applied patch from [Bug: 4405]; fixes memoryericm2000-03-271-1/+13
| | | | leak in Unix wm command.
* * unix/tkUnixWm.c (Tk_CoordsToWindow): qualified delete of errorhobbs2000-02-101-3/+10
| | | | | | | | | | | | | handler as the goto label is reached from above and below. * unix/configure.in: * unix/aclocal.m4: cleaned up macros to coincide with tcl.m4, added -export-dynamic to LDFLAGS for FreeBSD-3+ [Bug: 2998] * unix/README: * unix/Makefile.in (dist): removed porting.notes and porting.old from distribution and CVS. The information was very outdated. Now refer to http://dev.scriptics.com/services/support/platforms.html
* * unix/aclocal.m4: strtod bug on Tru64 [Bug: 3378]hobbs2000-01-121-27/+111
| | | | | | | | | | | | | | | | | * unix/Makefile.in: added tests to prevent unnecessary chmod +x in source dirs while installing [Bug: 3367] * unix/configure.in: properly sub'ed in TK_SHARED_BUILD [Bug: 3385] * tests/winWm.test: * tests/unixWm.test: * mac/tkMacWm.c: * unix/tkUnixWm.c: fixed possible X error being raised [Bug: 3377] * win/tkWinWm.c: wm deiconify in zoom state [Bug: 2077], fixed possible flashing of unmapped toplevel in deiconify [Bug: 3338] and fixed mapping of transient window [Bug: 572] Also, for all wm's, extended 'wm state' command to allow setting of the state, and added official support of 'zoomed' state on Win.