Commit graph

759 commits

Author SHA1 Message Date
Eric Wasylishen
1858519713 * Source/cairo/CairoGState.m (-DPSstroke:): If the line width is
0, temporarily set it to 1 unit wide (in device space.) This
is an attempt at matching the behaviour of the setlinewidth
PostScript operator, which is supposed to interpret 0 as meaning
the thinnest line that the output device can draw.
Note that Quartz (and cairo) draw nothing with a line width of 0.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@33739 72102866-910b-0410-8b05-ffd578937521
2011-08-15 19:23:49 +00:00
Eric Wasylishen
337ce46bba * Source/win32/WIN32Server.m (-resolutionForScreen:):
Scale the result by 0.75 so the Windows default of 96 DPI is
mapped to the GNUstep default of 72 DPI. While this sounds wrong,
72 and 96 are just "virtual" DPI's; both mean 1 point = 1 pixel,
so it's actually the right thing to do.
* Source/x11/XGServerWindow.m (-resolutionForScreen:):
Comment out the implementation and just return 72 for now,
because I'm not sure if we can trust the value the X server
gives us.

NOTE: Currently -gui ignores these methods and only looks at the
GSScaleFactor user default. I'm going to make -gui use the server
values now, because it's safe to do so on Windows (the system
DPI is set by the user, and affects all applications.)

NOTE: We might consider refactoring these methods to be called
scaleFactorForScreen: to make it clearer what they do.

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@33658 72102866-910b-0410-8b05-ffd578937521
2011-07-30 20:39:10 +00:00
Eric Wasylishen
883c8cbd61 * Source/winlib/WIN32GState.m (GSCreateBitmap): Add support for
(8 bit-greyscale, 8-bit alpha) format. This fixes various 
default images not showing (menu arrows, scroller arrows, etc.)

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@33582 72102866-910b-0410-8b05-ffd578937521
2011-07-18 18:13:47 +00:00
Eric Wasylishen
726d4a0801 * Source/x11/XGServerWindow.m: Add Xcursor support (for RGBA
imagecursor support.) configure test is still TODO, so it isn't
compiled in at the moment.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@33563 72102866-910b-0410-8b05-ffd578937521
2011-07-15 19:05:44 +00:00
Eric Wasylishen
1554a718dc * Headers/x11/XGGeneric.h
* Source/x11/XGServerWindow.m: Add new netwm window state atoms


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@33549 72102866-910b-0410-8b05-ffd578937521
2011-07-14 19:09:17 +00:00
Eric Wasylishen
f3149ce164 * Headers/cairo/CairoGState.h:
* Source/cairo/CairoGState.m: Remove most of the rounding code and
implementation of DPSstrokeadjust.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@33492 72102866-910b-0410-8b05-ffd578937521
2011-07-08 21:02:06 +00:00
Eric Wasylishen
3c80cf5c92 * Source/cairo/XGCairoSurface.m (-contentsOfScreen:inRect:):
Use the passed rect properly.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@33444 72102866-910b-0410-8b05-ffd578937521
2011-07-03 23:59:35 +00:00
Eric Wasylishen
9bc09976ee * Source/cairo/XGCairoSurface.m: Implementation of
-[GSDisplayServer contentsOfScreen:inRect:] for x11/cairo


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@33443 72102866-910b-0410-8b05-ffd578937521
2011-07-03 23:45:22 +00:00
Fred Kiefer
55bc606c48 * Headers/x11/XGServer.h: Add #include of config.h.
* Source/art/path.m (-DPSrectfill::::),
* Source/xlib/XGGState.m (-DPSrectfill::::): Change name of local
variable to avoid compiler warning.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@33365 72102866-910b-0410-8b05-ffd578937521
2011-06-22 22:09:41 +00:00
Fred Kiefer
084e5ade90 Revert last change as gui is fixed now.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@33305 72102866-910b-0410-8b05-ffd578937521
2011-06-14 22:27:58 +00:00
Fred Kiefer
5a950060d0 * Source/cairo/CairoContext.m (-supportsDrawGState): Delegate to
gstate.
* Headers/cairo/CairoGState.h (-supportsDrawGState): Declare this method.
* Source/cairo/CairoGState.m (-supportsDrawGState): Only allow the
faster drawing operation when the clip can be represented as a
list of rectangles.
* Source/cairo/CairoGState.m (-copyWithZone:): Always free the
clip rectangle list.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@33289 72102866-910b-0410-8b05-ffd578937521
2011-06-13 12:34:52 +00:00
Wolfgang Lux
938f716f55 Enlarge protocol array to make space for the _NET_WM_SYNC_REQUEST
protocol atom.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@33224 72102866-910b-0410-8b05-ffd578937521
2011-06-01 20:56:27 +00:00
David Chisnall
7d3d3852c9 Call NSZoneFree() on pointer allocated with NSAllocateCollectable(), not free(). This is a no-op in GC mode, and will free the memory in non-GC mode.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@33148 72102866-910b-0410-8b05-ffd578937521
2011-05-27 13:53:57 +00:00
Eric Wasylishen
07638f13fc * Source/winlib/WIN32GState.m:
* Source/art/ARTGState.m:
* Source/cairo/CairoGState.m:
* Source/xlib/XGGState.m:
* Source/gsc/GSContext.m:
* Source/gsc/GSGState.m:
* Headers/gsc/GSGStateOps.h:
Add a new interface, GSShowGlyphsWithAdvances, which replaces
GSShowGlyphs as the primitive text drawing method.

None of the backends implement it properly yet; I simply renamed
the existing -GSShowGlyphs:: methods to -GSShowGlyphsWithAdvances:::,
so they currently ignore the glyph advances.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@33121 72102866-910b-0410-8b05-ffd578937521
2011-05-26 03:48:58 +00:00
David Chisnall
1b26d9be44 Use NSAllocateCollectable() for some things that store pointers.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@33106 72102866-910b-0410-8b05-ffd578937521
2011-05-24 16:37:26 +00:00
Fred Kiefer
c03b2d3a3b Protect the name id.
Patch by Sebastian Reitenbach <sebastia@l00-bugdead-prods.de>


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@33065 72102866-910b-0410-8b05-ffd578937521
2011-05-19 07:37:29 +00:00
Eric Wasylishen
5ece9220eb * Source/x11/XGServerWindow.m:
* Source/x11/XGServer.m:
* Source/x11/XGServerEvent.m:
* Headers/x11/XGGeneric.h:
* Headers/x11/XGServerWindow.h:
* Headers/x11/XGServer.h:
Implement the _NET_WM_SYNC_REQUEST protocol described here:
http://standards.freedesktop.org/wm-spec/1.3/ar01s06.html

This is supposed to make window resizing smoother when dragging
a resize handle provided by the window manager, by waiting to
change the window manager's frame until the GNUstep window is
finished repainting.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@33045 72102866-910b-0410-8b05-ffd578937521
2011-05-15 08:37:44 +00:00
Eric Wasylishen
8b0d34990e * Undo the previous change and try a different approach..
just cache the character set in CairoFaceInfo, but load them
as needed as we were doing before.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@32987 72102866-910b-0410-8b05-ffd578937521
2011-05-05 20:05:13 +00:00
Eric Wasylishen
016af1f41c * Source/cairo/CairoFontEnumerator.m:
* Source/cairo/CairoFaceInfo (-characterSet): Remove the call to
FcFontMatch in -characterSet which was a big performace
bottleneck.
Instead load the character set data when enumerating all fonts in
CairoFontEnumerator.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@32986 72102866-910b-0410-8b05-ffd578937521
2011-05-05 19:18:43 +00:00
Eric Wasylishen
575901b00d back: c89 compat.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@32882 72102866-910b-0410-8b05-ffd578937521
2011-04-17 23:08:30 +00:00
Eric Wasylishen
8545154f67 back/cairo: CairoFontEnumerator.m: Replace -handleKey:selector:valueClass: and -handleKey:selector: methods with macros.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@32880 72102866-910b-0410-8b05-ffd578937521
2011-04-17 22:29:18 +00:00
Eric Wasylishen
88048d141c back/cairo: use Fontconfig for descriptor matching
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@32864 72102866-910b-0410-8b05-ffd578937521
2011-04-14 23:14:38 +00:00
Fred Kiefer
0f82f1a833 Fixes warnings reported by clang.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@32823 72102866-910b-0410-8b05-ffd578937521
2011-04-09 17:10:49 +00:00
Eric Wasylishen
dc80ca3aa0 back: implement coveredCharacterSet for CairoFontInfo
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@32716 72102866-910b-0410-8b05-ffd578937521
2011-03-28 04:19:41 +00:00
Fred Kiefer
80eab30de7 Extract the bitmap conversion into a local function and use it througout the file.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@32643 72102866-910b-0410-8b05-ffd578937521
2011-03-18 09:29:01 +00:00
Fred Kiefer
8913452ffc Change the way the image for the cursor gets passed on to the backend.
The old way could only work for 8 bit data.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@32492 72102866-910b-0410-8b05-ffd578937521
2011-03-07 19:45:20 +00:00
Richard Frith-MacDonald
8343fe8a64 avoid non-standard method
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@32489 72102866-910b-0410-8b05-ffd578937521
2011-03-07 17:48:05 +00:00
Fred Kiefer
5125141980 Implement the ne cursor backend methods.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@32180 72102866-910b-0410-8b05-ffd578937521
2011-02-15 22:54:51 +00:00
Wolfgang Lux
f85e6a7f1d Ooops, a closing parenthesis got lost in the last commit :-(
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@32167 72102866-910b-0410-8b05-ffd578937521
2011-02-14 22:44:55 +00:00
Wolfgang Lux
ed986c30f8 Omit app icons and mini windows from the pager and task bar even when
they are displayed at normal window level.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@32166 72102866-910b-0410-8b05-ffd578937521
2011-02-14 22:40:21 +00:00
Fred Kiefer
544ee725a7 Remove a few compiler warnings.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@31726 72102866-910b-0410-8b05-ffd578937521
2010-12-11 14:49:54 +00:00
Fred Kiefer
5ef996a240 Better error detection in Windows image display.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@31725 72102866-910b-0410-8b05-ffd578937521
2010-12-11 14:28:44 +00:00
Jonathan Gillaspie
15f3adb397 * Source/win32/WIN32Server.m: Added better logging on Window create and destroy errors.
Added a secondary call to get current mouse position if the first call fails.	
* Source/win32/w32_text_focus.m: Cast parameter to appropriate (HWND) type.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@31718 72102866-910b-0410-8b05-ffd578937521
2010-12-08 22:59:05 +00:00
Eric Wasylishen
282a590ad5 core/back: replace objc_{malloc/free} with malloc/free
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@31629 72102866-910b-0410-8b05-ffd578937521
2010-11-18 20:28:15 +00:00
Fred Kiefer
82789ff26e Fixed problems found by sttic code analyser.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@31326 72102866-910b-0410-8b05-ffd578937521
2010-09-11 14:00:35 +00:00
Eric Wasylishen
1c986457b5 back/win32: revert r31206
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@31324 72102866-910b-0410-8b05-ffd578937521
2010-09-10 22:45:12 +00:00
Eric Wasylishen
d41e797bfd * Source/win32/WIN32Server.m: Only show taskbar buttons for windows
which satisfy both:

- style mask isn't NSBorderlessWindowMask
- style mask don't have NSUtilityWindowMask set

Should fix bug 30911

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@31212 72102866-910b-0410-8b05-ffd578937521
2010-08-30 22:00:09 +00:00
Eric Wasylishen
24eff104fa * Source/win32/w32_activate.m: Call -[NSApp deactivate] in response
to a WM_ACTIVEAPPP message reporting that the app lost focus.

This delivers NSApplicationWillResignActiveNotification
and NSApplicationDidResignActiveNotification, hides panels, etc.

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@31206 72102866-910b-0410-8b05-ffd578937521
2010-08-30 05:53:30 +00:00
Eric Wasylishen
bdc97710e0 * Source/win32/WIN32Server.m: Handle Page Down and Page Up keys,
as well as adding a few others.

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@31200 72102866-910b-0410-8b05-ffd578937521
2010-08-25 17:03:38 +00:00
Eric Wasylishen
b7ff3b2973 * Headers/win32/WIN32Server.h:
* Source/win32/WIN32Server.m:
* Source/win32/w32_movesize.m:
Fix a rather serious error where the extra window data was allocated
in two places (allocated with objc_malloc in the WM_CREATE handler,
and also allocated by Windows using the cbWndExtra field of the window
class structure). Sometimes the window level was accessed from one
memory area and sometimes from the other.
	
This is a quick fix that leaves the level and ordered properties
in the cbWndExtra area, and the rest is left in the WIN_INTERN
structure. 

This fixes the problem where window ordering was broken when running
apps in gdb.

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@31198 72102866-910b-0410-8b05-ffd578937521
2010-08-25 04:20:45 +00:00
Eric Wasylishen
d963ba552d Source/win32/WIN32Server.m (-setmaxsize::): Remove the maximize box when a maximum size is set on a window.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@31197 72102866-910b-0410-8b05-ffd578937521
2010-08-24 23:20:01 +00:00
Fred Kiefer
b693e927c6 For XFT Also request spacing information.
Patch by Derek Fawcus <dfawcus@employees.org>.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@31109 72102866-910b-0410-8b05-ffd578937521
2010-08-10 19:21:31 +00:00
Eric Wasylishen
a2716081f5 back/win32:
Only look at NSUtilityWindowMask to decide whether to use a thin-
style title bar (WS_EX_TOOLWINDOW).

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@31080 72102866-910b-0410-8b05-ffd578937521
2010-08-04 04:57:04 +00:00
Fred Kiefer
96c82d4518 Fix for bug #30140. The code was not converting the rectangle for
pattern drawing into device space.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@31044 72102866-910b-0410-8b05-ffd578937521
2010-07-28 09:11:04 +00:00
Fred Kiefer
5d8d6e9138 * Source/win32/WIN32Server.m,
* Source/x11/XGServerEvent.m: Use NSDeleteCharacter instead of
        NSBackSpaceCharacter for the backspace key. This is what Cocoa
and
        OpenStep have been doing all the time.
        Also use NSBackTabCharacter on X11 when XK_ISO_Left_Tab is
        pressed, but don't convert shift-tab into NSBackTabCharacter.
        Patch by Derek Fawcus <dfawcus@employees.org>.


M    ChangeLog
M    Source/win32/WIN32Server.m
M    Source/x11/XGServerEvent.m


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@31034 72102866-910b-0410-8b05-ffd578937521
2010-07-26 12:46:35 +00:00
Eric Wasylishen
8a96326e26 * Source/win32/WIN32Server.m:
Fix accidental integer division intended to be float division when
setting the timestamp on events. This was causing all timestamps
to be rounded to the nearest second.

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@31031 72102866-910b-0410-8b05-ffd578937521
2010-07-26 01:55:24 +00:00
Eric Wasylishen
440de8d9b2 * Source/win32/w32_GLContext.m:
* Source/x11/XGGLContext.m:
Apply fix for bug 29705: OpenGL subwindow positioning error
(OpenGL subwindow position was incorrectly calculated when
the window content view was flipped)

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@31029 72102866-910b-0410-8b05-ffd578937521
2010-07-26 01:41:55 +00:00
Fred Kiefer
0b249e778b Submit X11 shift key handling patch by Derek Fawcus
<dfawcus@employees.org>.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@31025 72102866-910b-0410-8b05-ffd578937521
2010-07-25 19:39:18 +00:00
Eric Wasylishen
f336cf20af back/win32: When ordering out a window, use the SWP_NOACTIVATE flag on SetWindowPos
so Windows doesn't activate/deactivate any windows when hiding a window.
  
This fixes the bug where when a tooltip disappeared, it would deactivate
the window the tooltip was over.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@31024 72102866-910b-0410-8b05-ffd578937521
2010-07-25 07:35:42 +00:00
Eric Wasylishen
a27ce98ff1 back/win32: Fix for bug #29709: Windows: Maximize button in a window title bar is always grayed out
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/trunk@30933 72102866-910b-0410-8b05-ffd578937521
2010-07-07 06:00:51 +00:00