Commit Graph
299 Commits
Author SHA1 Message Date
Wim van der Meer 0c9f5a026f * Modified PtrScr key behaviour:
- No modifiers: take a screenshot with zero delay and launch the GUI
  - Shift-PrtScr: Silent screenshot using the saved GUI settings
  - Ctrl-PrtScr: Take a screenshot using the saved GUI settings and copy the
    screenshot to the system clipboard
* A few locale related changes (I am not sure how this works when a class is
  shared between two applications, I hope I got everything right)



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37252 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-25 13:12:15 +00:00
Wim van der Meer 3417d2a90f * Rename "ScreenshotApp" to "Screenshot", rename its signature from
"application/x-vnd.haiku-screenshotapp" to "application/x-vnd.haiku-screenshot"
* Rename "Screenshot" to "screenshot", rename its signature from
"application/x-vnd.haiku-screenshot" to "application/x-vnd.haiku-screenshot-cli"
* Move screenshot from /system/apps to /bin


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37059 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-08 13:15:17 +00:00
Axel Dörfler 5396d90d16 * Made zooming to full screen center the window when the window cannot be made
full screen (due to size restrictions).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36714 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-05-07 11:29:41 +00:00
Axel Dörfler 139aacf406 * The window was now always taken to the new workspace with Ctrl-Alt-arrow;
lazy debugging left over that closes ticket #5675 again.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36637 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-05-06 09:53:33 +00:00
Axel Dörfler 0a51dbde98 * Unified the Desktop and ServerApp AS_ACTIVATE_WORKSPACE to work in the same
way.
* Use that newly exposed feature of taking the focus window to the new workspace
  when using the Ctrl-Alt-Shift-Arrow shortcut.
* This fixes #5675.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36585 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-05-02 17:15:13 +00:00
Stephan Aßmus 43a7eb6ca5 Add comment explaining why MenusBeginning() is invoked before handling key events
with the command key pressed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35567 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-21 20:13:16 +00:00
Stephan Aßmus 85874d8dd3 When a Window is created for holding BViews attached to an offscreen bitmap,
always behave as if within a transaction. Otherwise all drawing calls to such
BViews wait for the server to finish the request. This change gives a tremendous
speed boost for these situations and is compatibly with BeOS, since there you
also had to call Sync() before drawing a bitmap that was painted with attached
views.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35414 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-05 12:06:15 +00:00
Philippe Saint-Pierre 5f341c3847 Reverting r34335. Wrong location of my "B_NOT_MINIZABLE" check.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34350 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-11-29 19:02:47 +00:00
Philippe Saint-Pierre 2c9bea98b9 Make BWindow honor the B_NOT_MINIMIZABLE flag. Fixes ticket #4337.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34335 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-11-29 02:15:54 +00:00
Axel Dörfler 09749e95dc * Added a BWindow::InViewTransaction() that determines whether or not the
window is currently updating its drawings as suggested by Stippi.
* Add this method to decide whether to call _FontChanged() in
  BListView::SetFont().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34109 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-11-18 10:48:44 +00:00
Axel Dörfler 289d85d2ac * BWindow::SendBehind(NULL) will now send the window to back.
* Added shortcuts ctrl-alt-F to get a window to front, and ctrl-alt-b to move it
  to the back.
* Updated the user guide with these shortcuts, and also explained the missing
  "single click to bring window to front" behaviour.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34108 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-11-18 10:33:32 +00:00
Jonas Sundström 5a0982b580 Spelling
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34081 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-11-16 23:35:34 +00:00
François Revol 80351b4d41 - this should fix gcc2 build, sorry ;)
- style fixes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33691 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-10-21 08:21:53 +00:00
François Revol 223ae47d99 Extend the Ctrl-Alt-arrows shortcuts to also move the current window when shift is held, as on Gnome.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33690 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-10-20 23:45:18 +00:00
Michael Lotz 81c431d23d Include the terminating 0 byte when adding as string type. Otherwise someone
reading the message as an actual string will run into problems.
Should fix #4697.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33442 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-10-05 13:38:27 +00:00
Stephan Aßmus 8a5e590d5e Work based on a patch by Joshua R. Elsasser:
* Some key-sequences cause \0 chars in the "bytes" data which is supposed to
  be passed to BView::KeyDown() and BView::KeyUp(). Therefor, one cannot use
  string methods for adding/extracting the data to/from the events. For
  example, Control-Space now works in the Terminal.

Thanks a lot for the original patch, Joshua!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33338 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-09-28 17:13:31 +00:00
Axel Dörfler 4aa6ec093b * IsMinimized() now locks the window. This should fix bug #4274.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32902 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-09-02 14:41:35 +00:00
Ryan Leavengood 19bce7226a Remove the forced resizing to preferred size when CenterIn is called, and
instead just check if the size limits need to be set. The code that previously
did this when processing the B_LAYOUT_WINDOW message was extracted into a
private method, which is called from both places.

This may be slightly wasteful in some cases (since the size limits may be set
multiple times), but it is definitely needed because without it both of the
current test apps (DiskProbe and Screenshot) did not have properly centered
windows.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32622 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-23 03:06:44 +00:00
Ryan Leavengood b0586d610a Remove useless BRect* version of CenterIn, make remaining version take a const
BRect reference.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32614 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-22 16:10:18 +00:00
Ryan Leavengood 2ff62714d0 Finally implemented BWindow::CenterOnScreen, with associated CenterIn(BRect)
methods as well as Size(). To avoid the problem of centering the window before
it has been resized by the layout system, I force the resizing early. If there
is a better way to do this or some way to avoid doing it repeatedly, let me
know. But I figure the Center* methods should not be called that often.

Updated Screenshot and DiskProbe to use this new method as a test. It certainly
cleaned up DiskProbe. I will update other code over the next few days (if
anyone wants to help, please do :)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32612 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-22 14:17:29 +00:00
Stefano Ceccherini 1f3bec8961 removed resolved TODO comment
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32562 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-21 11:49:15 +00:00
Axel Dörfler 87da7984dc * Contrl-~ now switches between application windows. This is handier than the
mechanism used in BeOS, that is to press Control+Option-Tab (which didn't
  work on Haiku, though).
* Did not change the window switch logic, though, so it's still not really
  nice.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32524 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-19 15:45:17 +00:00
Axel Dörfler 5b0a5c36ad * Our jump-to-next-group never worked, and since no one complained, option-tab
now takes over this role (leaving Alt-Tab) to the application.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32517 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-19 13:59:16 +00:00
Jonas Sundström 99452e33a8 Cleanup
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32233 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-10 19:41:01 +00:00
Jonas Sundström a57dddca06 Add TabFrame window property.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32228 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-10 16:12:12 +00:00
Axel Dörfler 8318af01b9 * Added a basic tool tip API, and implementation.
* The BView API can probably be regarded as good enough; the implementation
  might need to be improved over time (also, some things as archivability
  aren't fully implemented yet). The ToolTip.h header should get public once
  finalized.
* Added new B_MOUSE_IDLE message that is sent to a BView after a certain
  time has passed (BToolTipManager::ShowDelay()).
* Added small test app (ToolTipTest) that shows what is already working.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32078 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-03 14:47:41 +00:00
Axel Dörfler 1d6720dc2d * Don't use B_ZOOM; this does not respect the B_NOT_ZOOMABLE flag, same problem
as with B_MINIMIZE. This fixes bug #4134.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31828 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-27 20:50:01 +00:00
Axel Dörfler 47d9ed62d3 * Added AS_GET_WORKSPACE_LAYOUT to get the number of columns/rows of the
workspaces.
* Added shortcuts Ctrl-Alt-{Left|Right|Up|Down} to switch to adjacent
  workspaces.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31824 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-27 17:22:11 +00:00
Axel Dörfler 6d52606f4b * Don't use the B_MINIMIZE message for the minimize shortcut (ctrl-alt-m), since
that ignores the B_NOT_MINIMIZABLE flag. Instead, there is now a private
  _MINIMIZE_ message (naming like those other ugly private BMessage constants in
  AppDefs.h) which honours that flag.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31799 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-27 11:27:45 +00:00
Axel Dörfler f09d0bff87 * Style cleanups.
* Removed former dead print-screen code.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31797 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-27 10:50:53 +00:00
Stephan Aßmus ea603b7af3 Small style cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31155 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-06-21 13:01:40 +00:00
Stephan Aßmus 8f24c71102 Reverted my change to usage of _get_object_token_(), it already means to use
a cached token... doh! Thanks Axel!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31140 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-06-20 15:47:28 +00:00
Stephan Aßmus fa0ba1f855 Cache a view's server token. Avoids getting it for every
BView method that contacts the server.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31134 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-06-20 14:12:30 +00:00
Jérôme Duval 591bc3f2d9 * various fixes identified by gcc4, provided by Joe Prostko
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30902 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-05-28 20:36:22 +00:00
Stephan Aßmus f247113640 Added DecoratorFrame() method, which returns the outer frame of the window
on screen (ie including the decorator border and tab). Plus the necessary
refactoring as well as some TODO notes about windows with the tab on the left
side.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29820 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-31 13:34:16 +00:00
Axel Dörfler 68b8f65f33 * Reworked r29180 to make _HandleKeyDown() no longer rely on the active window
but if the message was targeted to the focus view. It will now only handle
  shortcuts in this case.
* This also fixes bug #3513.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29776 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-29 11:54:06 +00:00
Jérôme Duval 91f10b0a36 * it seems we can skip _HandleKeyDown() when not active (keyboard navigation, shortcuts and screenshots).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29180 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-09 23:58:36 +00:00
Jérôme Duval a13e53fe4f * Handles shortcuts only when the window is active. This fixes bug #3414 (and hopefully is the R5 behavior).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29179 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-09 23:48:25 +00:00
Michael Lotz 6eb09230ba * Resolve further warnings on GCC4.
* Enable -Werror on GCC4 builds as well (limited to the same selected targets).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29118 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-01 22:12:55 +00:00
Michael Lotz 18cd67c760 Add missing headers (malloc/free, string functions, memcpy, etc. undeclared).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28982 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-23 00:36:25 +00:00
Axel Dörfler 3dc4e7fa47 * The move/resize window protocol now uses absolute coordinates rather than
relative ones. This fixes bugs #2658, and #3213; in BWindow::ScreenChanged()
  the window does not yet know that it moved on the new screen (when it already
  had a position on that workspace).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28908 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-15 11:35:39 +00:00
Stephan Aßmus 860678c2c7 At some point, there was some hassle about what coordinate system the "where"
BPoint in a mouse moved message is. Turns out it's different (!) according
to the type of message and this is even documented in the BeBook. I don't
really know if we want to copy this, but since there are apps out there that
depend on this, I am implementing it so that it's compatible with BeOS: In
the B_MOUSE_UP/DOWN case, it's the coordinate space of the target view, in
B_MOUSE_MOVED messages, it's that of the window. That explains a few things...
Clicking into Pe's function popup window should now select the right icon.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28742 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-28 20:05:38 +00:00
Rene Gollent 6cf3a9ebf7 The previous commit exposed another bug: BWindow::Zoom() incorrectly calculated the max height of the window by only including the border width once. This was previously masked by the fact that the (by default 5) extra pixels were included in its hardcoded default for the height of the tab. Also add the border width to the message returned by GetDecoratorSettings() so Zoom can use the actual value instead of hardcoding it.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28679 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-17 04:15:51 +00:00
Rene Gollent ca9a61313a Resolved a small todo thanks to r28664:
We now ask the app_server for the window tab's height instead of
hardcoding it.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28678 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-17 00:47:23 +00:00
Stephan Aßmus 783d616d08 Minor style fix.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28672 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-16 22:36:42 +00:00
Axel Dörfler eaccfb9dd0 * Replaced some "new" with new(std::nothrow) where appropriate in our base
classes (BView, BWindow, BAlert, BButton - BTextView should be part of this,
  too, to make BAlerts work).
* However, it's not that simple, because there is often no way to return an
  error. Most of that code obviously assumes to be able to throw exceptions
  (it's just not communicated to the caller). Maybe we should just start
  documenting exceptions for R1 (and properly use exceptions later on).
* Automatic white space cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28646 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-14 10:23:38 +00:00
Stephan Aßmus a5a4ec57c5 Fixed two more problems with BWindow::FindView(BPoint):
* The function is not supposed to return hidden views.
* After iterating over the child views, the "view" variable was clobbered,
  so it didn't work to return the current view if none of it's child views
  were hit.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28494 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-04 14:45:58 +00:00
Rene Gollent 73ca5aff45 Fixed numerous problems in BWindow::_FindView:
1) If a view contained the point, but had children, that view would never be returned as a result, even if none of the children matched.
2) When converting coordinates to the child's coordinate space, it was using the bounds rectangle rather than the frame. This in most cases had the result that the coordinate was unchanged, and thus messed up the search completely.

This fixes ticket #3000.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28440 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-01 20:14:56 +00:00
Karsten Heimrich d751323939 * reintroduce member fOffscreen which got removed in r2917
* check if locking the offscreen window succeeds before calling delete on it
* don't return offscreen windows in CountWindows and WindowAt (works now as on R5)

  fixes ticket 1522, 1591, 1946, 2318 and propably more

  While creating an BBitmap in BApplication the bitmaps window looper would
  be added to the applications gLooperList, thus calling Quit() on that window
  and later delete on a stale window pointer in BBitmaps dtor. The Lock() check
  would fix the problem, but tests on R5 have shown that BApplication hides the
  offscreen window in CountWindows() and WindowAt().



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28236 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-19 12:23:18 +00:00
Oliver Tappe 39fbf5509b bonefish + zooey:
* Fixed a general problem with respect to overriding of the reserved
  virtual function slots: instead of statically invoking the method
  that corresponds to the reserved slot on the class that contains the
  slot, we now invoke the virtual Perform() method. Perform() then dispatches 
  the method invocation to the "proper" class, i.e. the highest class in the 
  hierarchy that  actually implements the requested method.
  This fixes a crash in apps that use liblayout's MSlider class and
  should fix one or other spurious bug with old apps or libraries, too.
* added new header folder 'binary_compatibility' that contains files that
  define the method codes and data structures required by Perform()
* looked for and implemented all used reserved virtual slot functions to
  invoke Perform() where necessary or to pass on the method call statically
  (for slots that were already maintained by Be)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28124 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-15 09:29:06 +00:00