Axel Dörfler
5727f0cfa2
B_WINDOW_RESIZED sends int32 values, not floats.
...
Made message parsing more robust for a lot of messages.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13301 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-28 00:58:26 +00:00
Axel Dörfler
84d9f25ac5
The thread renaming was broken under R5. Cleaned it up a little.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13289 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-27 01:58:56 +00:00
Axel Dörfler
d2e5d36050
fMenuSem was not initialized, and therefore, the window tried to delete some
...
arbitrary semaphore on destruction.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13250 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-23 23:18:17 +00:00
Axel Dörfler
8eee00f687
No longer draws hidden views (the app_server still handles them wrong, though,
...
when they are hidden while being attached to the window).
DrawAfterChildren() is now called at the appropriate place.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13224 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-22 17:28:24 +00:00
Stephan Aßmus
4d67034226
a new graphics state is pushed before calling BView::Draw() and popped after it. So any state changes you do in your Draw() function will be forgotton when you're done, as on R5. I have not done a lot of testing for bugs in the state stack within the app_server though...
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13174 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-16 12:37:30 +00:00
Axel Dörfler
dd10337fd0
Renamed BAppServerLink to AppServerLink, BPortLink to PortLink, LinkMsgReader
...
to LinkReceiver, LinkMsgSender to LinkSender, and put everything into the
BPrivate namespace.
Made AppServerLink a cheap object - it will use the applications receiver/sender
and not create its own buffers.
Fixed broken communication stuff here and there (mostly Font.cpp).
Put the newly introduced set|get_system_colors() into the BPrivate namespace -
please don't introduce private functions into the public namespace!!!
Also fixed their broken communication use, as Darkwyrm obviously forgot about
it again: the sequence Flush(); GetNextMessage() without error checking is
purely wrong and can make the app hang and/or crash! :-)
Other minor cleanup.
The input_server used some test mode with the haiku build target which is
probably wrong.
Hopefully I did not forget anything this time.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13128 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-14 21:28:56 +00:00
Stefano Ceccherini
aa6f42c954
DispatchMessage() is called with the looper already locked, so we call fLink->Flush() directly, which does not lock it again. Changed some TODO to be more informative, removed one.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13076 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-12 14:46:22 +00:00
Stefano Ceccherini
9b7978ffe6
No need to Lock()/Unlock() as Flush() does it already. Sync() wouldn't have unlocked the window in case FlushWithReply() wouldn't succeed.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13061 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-11 15:08:00 +00:00
Stephan Aßmus
56efd1ace8
Sometimes I have seen crashes in BWindow::determine_target(), and this could very well fix it.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13060 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-11 14:28:54 +00:00
Stefano Ceccherini
95c58faa2d
Now we flush the command buffer after handling a B_PULSE message. This fixes the PulseTest (and probably some other things).
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13059 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-11 13:23:53 +00:00
Axel Dörfler
75936a02e4
BPortLink now has a FlushWithReply() method itself.
...
BPortLink::AttachString() now accepts a length argument, and will no longer
send a terminating null byte; LinkMsgReader::ReadString(), however, will
make sure the string read is null terminated.
Changed client communication code to use FlushWithReply() instead of Flush()
and GetNextReply() - there were many bugs and shortcomings in the code, I
hope I've fixed them all.
Converted ClientFontList.cpp to our coding style (but not completely, the
class members are missing).
Some more cleanup - I hope Adi will adopt our coding style one day!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12998 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-08 00:36:26 +00:00
Stephan Aßmus
442992bf26
fixed some pretty bad bugs that prevented menus from working (they now do): The BMessage* in AddShortcut is taken in responsibility by the BWindow, so we cannot directly use the message from BMenuItem, the be_app was locked in InitData but never unlocked, it fixes BMenus only working once, and who knows what else it fixes. A little cleanup with _BCmdKey usage, also note that it is inefficient to RemoveItem()s from a list in the destructor of any class using a BList as data container! Simply delete the items and be done with it. The BList destructor will take care of the rest and free its storage in one go.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12982 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-07 13:19:28 +00:00
Axel Dörfler
e17b33e56b
The window was removing the app_server connection too early, and thus hang in Quit().
...
Removed the stopConnection() method.
Cleaned up header a bit.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12959 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-05 18:57:55 +00:00
Stephan Aßmus
59345e264f
huge cleanup, support for SetSizeLimits, support for truncating strings, numerous decorator bug fixes, Layer does not draw when view color is B_TRANSPARENT_COLOR, cleaner dispatching of mouse events to the WinBorder in RootLayer, commented the char map selection in the font server, as it seems glyph lookup by unicode index works much better with the default map
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12945 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-03 19:50:30 +00:00
Stefano Ceccherini
b9b38bc7b2
Fixed build with debug enabled. Renamed a static variable.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12938 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-03 14:15:33 +00:00
Stefano Ceccherini
38b35d9caa
BBitmap now uses the correct (private) BWindow constructor. Partially implemented that constructor. Fixed another typo in BView, verified and removed some TODOs
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12884 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-29 06:32:16 +00:00
Stefano Ceccherini
87ab5d5c6d
Now we delete the menu semaphore in the window's destructor
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12785 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-23 13:56:06 +00:00
Axel Dörfler
25500bdfd9
Fixed BWindow::UpdateIfNeeded() by moving the code from BView::GetMouse() over.
...
GetMouse() will now just call UpdateIfNeeded().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12736 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-19 17:20:36 +00:00
Axel Dörfler
bcd8a1fad9
Converted Window.cpp to our coding style guide and (unfortunately) fixed a
...
myriad of small bugs here and there, as well as some very odd coding techniques:
- the "Minimize" property was not handled
- the "Minimize" property was not settable
- the property/scripting stuff was horrible, anyway
- there are more and better error codes than B_ERROR (could someone tell the
app_server guys? :))
- added some ToDo items here and there
- and much more I don't remember
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12723 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-18 20:53:21 +00:00
Axel Dörfler
3405fff2a9
Implemented private function BWindow::DequeueAll() which reads all pending
...
messages from the port.
BView::GetMouse() now calls this function if it was called from the window's
thread and thus blocking the message loop.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12716 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-18 16:54:56 +00:00
Stephan Aßmus
ad6b480400
Work in Progress. The server keeps the client window up to date on layer movement/resizing. This fixes quite a few problems and brings support for FrameMoved and Resized hooks. But implementing it this way has its own set of problem, most importantly: When a BView calles Window()->CurrentMessage() in its FrameMoved/Resized hooks, it will see something very different from what it would see in R5. This needs to be fixed, but I have not had a good idea how to do this other than faking the current message in BWindow, which I didn't look into.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12689 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-16 15:39:58 +00:00
Stephan Aßmus
d557af5b96
Fixes to my fixes of BView::MakeFocus(), the previous focus BView needs to be unfocused of course so the derived classes implementation gets called. Simplified BWindow::setFocus(). BView calls FrameResized() and FrameMoved() if it has no parent, I don't know how R5 handles it, but I added a TODO...
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12683 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-16 11:59:42 +00:00
Stefano Ceccherini
7bdfb0d996
Added handler for _MENUS_DONE_
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12583 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-07 13:24:25 +00:00
Stephan Aßmus
fc72699071
added some safety checks, cosmetic changes - please note that it is safe to call delete with a NULL pointer, unlike free(), so please don't clutter the code
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12564 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-03 21:54:44 +00:00
Stephan Aßmus
1596a167c0
work around for layers not being moved that have not yet been added to the tree. See WinBorder::MoveTo for the explaination. The same problem should be at other places and most likely for normal views as well. This fixes BWindow::MoveXX() when it is not yet Show()n
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12500 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-28 23:56:40 +00:00
Stephan Aßmus
9715a3e1bf
fixed BWindow::MoveXX(), BWindow::ResizeXX() and BView::ConvertToScreen()
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12491 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-28 12:31:25 +00:00
Stephan Aßmus
3505574164
Added some TODO comments in Window.cpp, improved coordinate conversion in View.cpp. I'm not sure if this really works correctly, I need to write more tests. The scrolling test actually does more of what it is supposed to. At least the scrolling properly follows the mouse now. Missing are the movement of child views, the rebuilding of clipping, and I think that the scrolling needs to be synced to update requests having been fullfilled, or else some parts of the View will be CopyBits()ed which have not been drawn after having been scrolled into view by previous calls to ScrollBy(). Any insights appreciated.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12485 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-27 23:27:37 +00:00
Stephan Aßmus
28930a1240
small changes and fixes here and there
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12480 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-27 17:25:29 +00:00
Adi Oanca
6141cc1d5a
Adjusted SetFeel() to current server implementation
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12457 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-21 18:59:14 +00:00
Adi Oanca
e86740b699
Forward message to the handler set inside task_looper() no to fFocus
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12395 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-14 21:17:07 +00:00
Adi Oanca
94b849e1e2
No more B_MESSAGE_NOT_UNDERSTOOD on B_UNMAPPED_KEY_DOWN, B_UNMAPPED_KEY_UP, B_MODIFIERS_CHANGED events
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12394 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-14 18:05:54 +00:00
Adi Oanca
be9241bf17
Added server support for Workspaces() and SetWorkspaces()
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12286 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-10 18:56:02 +00:00
Adi Oanca
9f7e77bd63
Forgot a warning message
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12196 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-31 16:39:18 +00:00
Adi Oanca
52bd978684
Send only one AS_BEGIN/END_UPDATE message, not for every view
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12195 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-31 16:36:34 +00:00
Michael Lotz
3c46b74895
Remove debug leftover.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12083 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-27 21:29:55 +00:00
Michael Lotz
cd970020cb
Implement the BWindow::task_loop again. I know that this is code duplication, but look at
...
the TODO item for an explanation. We could do this as a hack in Looper.cpp though.
Also implement the determine_target function (incomplete).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12082 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-27 21:08:38 +00:00
Adi Oanca
27e3da2fac
BWindow's frame events hooks work now. Frame gets updated on window move/resize.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12073 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-27 12:16:31 +00:00
Michael Lotz
ed16bb7885
Fix KeyDown/KeyUp calls so that we don't always get numBytes = 0.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12062 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-27 02:07:02 +00:00
Adi Oanca
642d7ca95e
Implemented BView::SetEventMask()
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11945 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-21 20:26:44 +00:00
Adi Oanca
494d1b2a5a
This fixes a problem with window's contents not being redrawn after a Show(), Hide and Show() again
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11876 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-17 17:22:23 +00:00
Axel Dörfler
f51f1dda88
Fixed some weird includes (no need or even support to specify "posix" as part of the include path).
...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11575 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-05 13:37:13 +00:00
Adi Oanca
7b76dd8073
mouse & keyboard messages now use the full power of application_kit
...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11281 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-07 00:32:32 +00:00
Adi Oanca
79c8040e93
BView::MouseUp/KeyDown/KeyUp() hook methods are called for the BView for which the action takes place
...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11241 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-03 22:46:58 +00:00
Adi Oanca
0e835651a5
BView::MouseDown() finally gets called
...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11239 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-03 21:41:09 +00:00
Adi Oanca
6e8a11dda4
Keyboard messages are dispached to BWindow's handler if no focus view
...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10931 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-21 17:58:09 +00:00
DarkWyrm
e09fd76fe6
Added some changes for the new mouse wheel support
...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9813 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-06 19:45:49 +00:00
DarkWyrm
f9ed3ba7d5
Fixed a stupid mistake in the message to create a window
...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8619 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-08-22 00:10:44 +00:00
DarkWyrm
38e110b124
Client-server messaging fixes
...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8543 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-08-08 22:35:25 +00:00
haydentech
f073f5d156
Fix 2 instances of mismatched locking
...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8532 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-08-02 21:07:55 +00:00
DarkWyrm
3ceb31b96a
Pahtz's changes from PortLink/BSession/PortMessage/PortQueue to BPortLink
...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8519 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-07-30 15:15:27 +00:00