Commit Graph

2066 Commits

Author SHA1 Message Date
Stefano Ceccherini
8f38753043 ReadString() actually allocates memory... fixed that and another memory
leak


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19161 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-31 11:24:58 +00:00
Axel Dörfler
8e963d88f0 The app_server did not reset keyboard focus on B_INPUT_METHOD_EVENT messages.
This should fix bug #658.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19160 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-31 01:24:05 +00:00
Stefano Ceccherini
2f9eca855a moved Shape related defines to their own header
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19154 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-30 21:20:38 +00:00
Stefano Ceccherini
34633cab94 patch by Lucasz Zemczak which adds BShape drawing support to BPicture. Actually we should use a ShapeIterator subclass (like Lucasz did here) in Painter too instead of having duplicating code.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19153 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-30 20:42:54 +00:00
Axel Dörfler
07dc2c6972 * The app_server now gives top-most menus the keyboard focus.
* BMenuWindow now makes its menu focus view, so that it can receive key events.
* Keyboard navigation doesn't work as it should though, that is bug #670 is
  still valid - there should even be another recently opened bug about this,
  but Trac obviously ate it :-/


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19152 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-30 14:21:28 +00:00
Axel Dörfler
158893b903 The input_server now removes all B_INPUT_METHOD_EVENTS when the target view is
not input method aware.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19147 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-29 19:12:29 +00:00
Axel Dörfler
7430a5bea6 Removed the superfluous (doubled) AS_MOVEPENTO as well. Also removed those old constants
from the ServerProtocol.h header.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19132 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-26 22:48:31 +00:00
Stefano Ceccherini
0e683ed9aa ServerPicture was using the wrong StrokeRect call (the one which ignored
the pen size). Added scale handling. Removed duplicated AS_SETPENSIZE 
handler in ServerWindow


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19130 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-26 19:49:02 +00:00
Axel Dörfler
b735e46de3 Extended input method protocol a bit: you can now set "be:inline_only" to true, which
means that no bottomline window will be opened in case the current view is not input
method aware.
Instead, only the confirmed B_INPUT_METHOD_CHANGE event will be translated to a message
the view will understand - this message must be part of the event in the "be:translated"
member.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19116 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-25 10:45:45 +00:00
Stefano Ceccherini
467dbaa9e2 Fill/StrokeArc support for BPicture, courtesy of Lucasz Zemczak
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19103 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-23 11:54:44 +00:00
Stefano Ceccherini
0c40a6370e added part of a patch by Lukasz Zemczak which adds ellipse
filling/stroking support to BPictures. 
Thank you!"


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19102 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-23 09:50:22 +00:00
Stefano Ceccherini
3ffcd64e5c updated headers
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19099 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-23 09:29:30 +00:00
Axel Dörfler
8a93edb60c Made all server version and signatures consistent, and thus closing bug #909.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19092 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-22 17:56:02 +00:00
Axel Dörfler
37ec4f04fe * Cleanup of signatures and version infos - this is part of a fix to bug #909.
I've done all preferences apps for now, and some related.
* Some other related cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19090 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-22 14:55:44 +00:00
Axel Dörfler
c04f283d6a Fixed the bug noticed by Philippe - we might not only be able to open the
"interfaces" file in the future :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19088 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-19 21:37:31 +00:00
Axel Dörfler
b01a3a33a6 * Implemented node monitoring: if you change the interfaces settings file, the
networking stack is reconfigured automatically.
* The previous default route is now removed before installing a new one.
* "gateway" was missing in the driver settings to BMessage conversion template,
  and thus, it was only set to a default value in case there was no settings
  file.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19086 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-19 13:37:13 +00:00
Axel Dörfler
535df2cff3 Now also supports setting a gateway through the configuration.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19085 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-19 12:20:44 +00:00
Axel Dörfler
53d1802e02 Now checks if a valid configuration was found, and if that's not the case, it
will automatically configure the stack - without DHCP for now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19084 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-19 12:11:19 +00:00
Axel Dörfler
1a2ad4cb2c * Moved settings stuff into its own file.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19083 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-19 11:24:57 +00:00
Axel Dörfler
919c897b98 Started writing the new networking server. Right now, it'll configure the
networking stack according to some settings file. Doesn't do anything beyond
that yet, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19082 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-19 10:45:11 +00:00
Axel Dörfler
122a163324 The mouse event window will already be reset in RemoveWindow() (through HideWindow());
doing it here is not only superfluous, it would also cause to lose the window when switching
to a workspace where the window is not visible and back while dragging it around.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19076 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-17 20:52:03 +00:00
Axel Dörfler
8c68eab694 Fixed two different bugs that could cause bug #896:
* the app's Activate() method was called unsafely; the ServerApp pointer could
  have become invalid in the mean time.
* when hiding a floating window (because its parent got hidden) that had focus
  or even was the mouse event window (was currently dragged over the screen)
  the focus was not moved to another window.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19075 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-17 20:44:13 +00:00
Axel Dörfler
7dfa04527c Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19074 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-17 20:40:26 +00:00
Jérôme Duval
6bb2fbd521 inherited is a private typedef of BWindow, said gcc4
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19064 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-14 15:18:57 +00:00
Axel Dörfler
6edab6011e We must not have the font manager locked when locking the desktop (no matter
if read or write); there are some methods that cause a locking of the font
manager (like ServerFont::SetFamilyAndStyle()).
This fixes bug #885.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19051 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-12 12:34:19 +00:00
Stefano Ceccherini
c585b1f46d GetEscapements() didnt' take the font spacing into account. Looks like the spacing is ignored by the font backend, though, am I correct?
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18990 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-03 11:46:55 +00:00
Axel Dörfler
8b4fbcf3ad * Now dumps a message to the serial debug output in case a GUI server died; if the
registrar or the input_server died, you didn't get any notification before.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18970 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-28 15:47:44 +00:00
Jérôme Duval
ee670e9ce2 simplified syntax
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18905 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-21 13:05:39 +00:00
Stephan Aßmus
fd49bce12e * For DrawBitmap(), the bitmap rect needs to be aligned onto pixels
just like the view rect. This fixes bug 721.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18872 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-17 11:55:23 +00:00
Stephan Aßmus
d39634ce4d * on R5, the meaning of B_CONSTANT_ALPHA is a bit different
with regards to drawing bitmaps with alpha channel, instead
  of ignoring the bitmap alpha channel, it is further multiplied
  with the high color alpha channel, so basically, you can
  use the high color alpha as a "global" alpha value to
  draw the bitmap with
* removed some duplicate code


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18843 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-14 18:07:02 +00:00
Stephan Aßmus
846cc588f2 * a fix for the bug where clicking a window decor button drew
over the mouse cursor. The problem is actually something else:
  non-straight lines extend a little past the calculated rectangle 


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18842 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-14 18:03:39 +00:00
Stephan Aßmus
ae540011ed * when the layout branch was merged, the same problem
got fixed twice, any unoptimized lines were drawn at
  a (0.5, 0.5) offset


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18841 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-14 18:00:09 +00:00
Stephan Aßmus
a907e70198 * a hack to support transparent CMAP8 color in bitmaps
(this would fix the white background on disabled looking
   icons if Tracker would still use B_CMAP8 icons)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18840 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-14 17:57:37 +00:00
Stephan Aßmus
af957c251b * don't read the frame buffer a second time when no
blending has to take place


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18839 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-14 17:55:55 +00:00
Stephan Aßmus
4423855cbd This is the kind of bug you can search for hours. At first, I suspected
a concurency problem in the DrawingEngine, so there is some debugging
stuff added, as well as some unnecessary locking removed there. The
problem was in Painter though, in that certain functions adjusted clipping
at the "rasterizer level", while some other functions didn't care about
that. Now the clipping is consistently set at the rasterizer level (rough
estimate to avoid scanline generation outside real clipping region bounds).
There are a number of bugs fixed by this, I'm going to find out later,
what their ticket numbers are... Mouse preflet draws the mouse now,
Backgrounds preflet draws the screen reliably... probably more, anything
to do with bitmaps, round rects and possibly ellipses.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18828 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-13 20:02:00 +00:00
Ingo Weinhold
6bfd06d1ff BRoster::Launch() eventually launches the application in question
in several steps:
1. early pre-registration with the registrar ("I wanna launch the
   app, make sure noone interferes.")
2. load the app image
3. finish pre-registration with the registrar ("I have launched
   the app, here is its team ID.")
4. start app main thread
5. send "on launch" messages to the app (argv, refs, others)

If the app is already running or being launched, 1. fails with a
conclusive error code and returns the team ID and the pre-registration
token of the app. Steps 2 - 4 are skipped and only the messages are
delivered using the team ID returned by 1.

This change fixes a race condition: The failed early pre-registration
request obviously cannot return the team ID, if the other thread
launching the app has not finished step 3 yet. Thus the argv/refs
message would not get delivered and Launch() would not return the
correct team ID.

Now we wait for the pre-registration to be finished in this case, using
the former _IsAppPreRegistered() mechanism, which already provided
such a waiting feature for one request. It has been extended to
accomodate an arbitrary number of waiting requests and renamed to
_IsAppRegistered().

This fixed bug #763.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18728 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-31 17:54:16 +00:00
Stephan Aßmus
7fb6186f3c * integration of vector icons with the registrar and the mime data base
* additional versions of SetIcon[ForType] and GetIcon[ForType] in BMimeType
  and BAppFileInfo, which handle flat vector icon data
* changes in Tracker to support scalable icons (currently broken for
non-vector icons and needs cleanup) and drawing icons correctly with alpha
channel (large parts of this work done by Michael Lotz)

If someone feels like looking over the changes, that would be much
appreciated! :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18699 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-29 17:06:23 +00:00
Axel Dörfler
7ee49d9f64 Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18696 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-29 15:04:42 +00:00
Ingo Weinhold
9ecf9d1c1d Merge from layout management branch.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18649 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-26 16:21:15 +00:00
Axel Dörfler
a17c3a48b8 Changed the way DesktopSettings work:
* Removed the DesktopSettings lock itself - it's not really needed at all,
  and causes some trouble with a clean locking design. This may even have
  fixed bug #757, at least I couldn't reproduce it anymore.
* There is now a class for read-only access that requires you to have locked
  the desktop (either read or write).
* There is now another class LockedDesktopSettings that allows you to set
  settings (and only that) - when you're changing the settings, you must not
  have read locked the desktop (ie. hold the single window lock). The class
  will obtain a write lock, but write locks can be nested.
* Moved SetWorkspacesCount() into the Desktop class.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18646 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-26 15:13:08 +00:00
Axel Dörfler
17c6d00009 Parameter "window" is now allowed to be NULL (this fixes a crashing bug I introduced earlier).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18617 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-24 20:45:22 +00:00
Stefano Ceccherini
1ff0b28a93 Uncommented invalidation of the area occupied by the views when they are added/removed from the tree. This fixes a couple of problems, I can't say the bug # because bugzilla is down ATM. Why was this code commented out? Stephan ?
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18607 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-24 14:09:15 +00:00
Axel Dörfler
5c87242ea3 Improved the fake mouse-moved mechanism quite a bit:
* EventDispatcher now adopts the cursor position from the HWInterface upon
  assignment, so that even the initial cursor reports match the on screen
  visuals.
* The message was never sent because "target" in Desktop::_SendFakeMouseMoved()
  was never set.
* EventDispatcher::SendFakeMouseMoved() now accepts an EventTarget and no
  longer a BMessenger (fits better to the rest of the API).
* EventDispatcher::SendFakeMouseMoved() now sends out the exit transit message
  to the previous target directly (doesn't wait until the next actual mouse
  move), and updates the previous target as well, so that scrolling now
  works in that new window.
* This only partially fixes bug #762, though, as GetMouse() can still steal
  this mouse message (BTextViews do that in WindowActivated()).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18596 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-24 08:49:21 +00:00
Axel Dörfler
524c811b5d Renamed HWInterface::GetCursorPosition() to CursorPosition() to match
the usual style.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18595 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-24 08:40:44 +00:00
Axel Dörfler
d479fa7ae4 Floating windows no longer flicker when moving a window to another workspace
using the shortcut keys (Alt-Fn).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18593 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-23 21:49:59 +00:00
Axel Dörfler
6474795008 SetWorkspace() now also move the subset windows of the mouse event window to
the new workspace - this fixes bug #755. Unlike floating windows, they aren't
even redrawn :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18592 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-23 21:21:45 +00:00
Axel Dörfler
85e2542930 Shouldn't try to move windows to top that aren't yet in the workspace
(a.k.a. floating windows) in SetWorkspace().
This fixes bug #211.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18591 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-23 20:11:36 +00:00
Axel Dörfler
258d8a3380 When building the update region on workspace switch, the mouse event window was
ignored even if it was not visible on the previous workspace (only normal windows
can be moved this way).
This fixes bug #765.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18585 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-23 12:20:28 +00:00
Axel Dörfler
93d0415885 * If a BView::SetMouseEventMask() arrived in the app_server after the mouse buttons
have already been released again, the temporary listener was still added.
  This fixes bug #727.
* No longer removes temporary listeners if there are mouse buttons left pressed; ie.
  if you press two buttons at once, the listeners are now only removed after you've
  released them both. This is not only more logical, it's also how BeOS behaves :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18483 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-11 14:24:42 +00:00
Jérôme Duval
e2d5e00981 applied a patch from barber for bug #661. Thanks! This fixes a weird behavior when using the menu
minor cleanup


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18093 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-07-10 22:12:40 +00:00