Commit Graph

95 Commits

Author SHA1 Message Date
35c295da89 broadway: Don't allow dragging windows above top of window
This is highly confusing and makes it impossible to get the windows
back.
2013-01-08 18:05:06 +01:00
8e686357c4 broadway: Move window position ownership to browser
With this we always roundtrip position change to the webbrowser.
This avoids conflicts when things change from both directions (app and user).

Also, we fake configure evens when there is no web client to ensure
apps get the events.
2013-01-08 18:05:06 +01:00
aac4a027eb broadway: Stop default mouse button handling
This makes it not possible to select the canvas objects, etc.
2012-12-27 22:56:04 +01:00
9c3cd49abd broadway: Remove separate browser windows hack
This never really worked well, we need to be able to fully handle
sizes from the client.
2012-12-20 00:00:16 +01:00
0a808bea54 broadway: Separate out the server parts
This (shouldn't) change any behaviour, but it moves the
webserver parts to a separate file, making the broadway display file
smaller and preparing for later separating out the server to its own
process.
2012-12-20 00:00:16 +01:00
db374a0a87 broadway: Use binary websockets if available 2012-10-01 14:58:57 +02:00
203dd8bf7a broadway: Fix indentation 2012-10-01 14:58:56 +02:00
96e7ff73dd broadway: Detect binary websockets support 2012-10-01 14:58:56 +02:00
7c87684629 broadway: Centralize cmd parsing
This clean up things, as well as prepares for new message formats
such as binary websockets.
2012-10-01 14:58:56 +02:00
14a17873de broadway: Initial support fro V7+ websockets
Allows more modern browsers eg. firefox 5+ to use gtk/broadway
Auto-detects protocol version, and can switch between them at
as you connect a different browser.

This works to some extent, but seems to hang sometimes, for
instance the "button box" test in testgtk never shows up.
2011-11-10 10:12:28 +01:00
ce80929b83 [broadway] New adwaita based css for "wm"
Created by Lapo Calamandrei.
2011-04-19 08:30:21 +02:00
dc56a51cec [broadway] Remove debug spew 2011-04-18 20:51:53 +02:00
0abd5e2767 [broadway] Stream data over websocket
The zlib compressed xmlhttprequest thing was a nice hack, but it doesn't
really work in production. Its not portable, doesn't have enought API
(missing notification for closed sockets) and having to synchronize
between two different connections in a reliable way is a pain.

So, we're going everything over the websocket. This is a pure switch,
but after this we want to modify the protocol to work better over
the uncompressed utf8 transport of websockets.
2011-04-18 20:51:53 +02:00
02e9b97981 [broadway] Implement wm close in browser 2011-04-18 11:50:29 +02:00
52074b4cac [broadway] Report most special keys in keypressed
Some special key keycode values as seen in keydown actually match
normal keys (like "." has a keyCode 46 on keyPress, which is the same
as Delete, but 190 for KeyDown). So we must match the special keys on
keypress. However, some things must be checked on keydown as they are not
generating keypress events.
2011-04-18 10:55:41 +02:00
22c250e324 [broadway] Correctly handle ungrabs in the browser side
Always call doUngrab to get the right event, and always do this
if the grabbed window is hidden or destroyed.
2011-04-15 20:34:31 +02:00
887743728f [broadway] Handle keyboard modifiers in state 2011-04-14 21:36:42 +02:00
7d37534ee2 [broadway] Implement keyboard event better
We're using the noVNC keyboard even handling model (and some of the
code with permissions). This means we combine data from keydown and
keypress to figure out the translated keysyms according to the keyboard
layout at the users machine.
2011-04-14 21:36:42 +02:00
85c1c22d04 [broadway] Cancel key events after seeing them 2011-04-12 13:38:04 +02:00
afdde925b8 [broadway] Fix canvas resize when resizing browser window
We always have to resize the canvas, even when its in a toplevel.
2011-04-12 11:34:13 +02:00
20542b0ead [broadway] Fix typo 2011-04-12 11:21:47 +02:00
f4bef2c720 [broadway] Combine window move and resize into one op
This way we avoid sending a configure event for the inbetween state
if we're resizeing and moving at the same time.
2011-04-12 11:12:39 +02:00
ca49ec2c8c [broadway] Fix various js warnings 2011-04-12 11:12:39 +02:00
840df5c7c1 [broadway] Add stacktrace debugging functions 2011-04-12 11:12:39 +02:00
2934569781 [broadway] Always send configure events from browser
As soon as something changes, even if it was a request from the user
we send a configure event. If not we might race with a app-side
generated configure event.

For instance, a create + resize might create only a configure event for
the create in the browser, but that may get to the app after the app-side
configure event for the resize, overriding the new size.
2011-04-12 11:12:39 +02:00
4bbc45380b [broadway] More complete handling of transient parent
We now handle any order of transient being set and windows shown/created
2011-04-12 11:12:39 +02:00
75dc3f3a07 [broadway] Use mozInnerScreenX & co to get window position
This way we don't have to rely on any event, which won't work until
we get an event.
2011-04-12 11:12:38 +02:00
8a7e208bb2 [broadway] Parse x/y as signed 2011-04-12 11:12:38 +02:00
4cb979d6b9 [broadway] Update window geometry after showing window 2011-04-12 11:12:38 +02:00
4c575ac343 [broadway] Don't cache surface.transientToplevel as that might change at various times 2011-04-12 11:12:38 +02:00
33d16b16c9 [broadway] Clean up js side surface handling
* Always calculate the context, don't store in surface.
* Store the toplevel element (frame or canvas) for easy access.
* Always use visibility hidden rathern than display none to hide windows,
  as this means we can always rely on dom positioning info.
2011-04-11 12:09:43 +02:00
27c4d104fb [broadway] Restack on window show to ensure all zIndexes are right 2011-04-11 12:09:43 +02:00
c839f2910c [broadway] Store surface, not id in stackingOrder list 2011-04-11 12:09:43 +02:00
7a197e5b65 [broadway] Fix up frame size calculation
Turns out that offsetTop/Left doesn't contain the border, so we need
to manually add that in.
2011-04-11 12:09:43 +02:00
d6beabbff2 [broadway] Make the toplevel mode a url parameter 2011-04-10 20:16:13 +02:00
fe79bbd618 [broadway] Position non-popup windows ourselves
We ignore the initial positions for non-popup windows, instead we
place the windows ourselves (or in the useToplevel mode by the WM).
2011-04-10 20:16:13 +02:00
e5d8905cd2 [broadway] Fix up toplevel content visibility in useToplevel mode
surfaces.canvas may change if we move to another document, so
reupdate the element to show after ensureSurfaceInDocument.
2011-04-10 20:16:13 +02:00
fadaced85f [broadway] Move window to top when moving 2011-04-10 20:16:13 +02:00
618dc872b0 [broadway] Add some initial work for in-window frames
The css is based on work by Jasper St Pierre:
http://magcius.mecheye.net/vista/
2011-04-10 20:16:13 +02:00
69eafcc3c5 [broadway] Fix some typos in the js code 2011-04-10 20:16:13 +02:00
955f01cdf7 [broadway] Enable useToplevelWindow by default for now 2011-04-07 21:16:52 +02:00
9d974ca13a [broadway] Fix typo in implicit grab support
We do an implicit grab if there is no grab already, not only if there is
one.
2011-04-07 15:26:37 +02:00
dd07f534f4 [broadway] Handle screen size
Without this menu placement doesn't work right
2011-04-07 15:10:39 +02:00
3b1fe05e78 [broadway] Wire up the delete event 2011-04-07 10:03:17 +02:00
06fc6e007e [broadway] Report right root coors in toplevel mode 2011-04-07 10:03:17 +02:00
adc05ae6b7 [broadway] Add configure event for browser-side geometry changes
Atm this only works for the useToplevelWindows case, but we can add
a browser wm to make use of it inside the browser too.
2011-04-07 10:03:17 +02:00
1365e93fad [broadway] Add experimental toplevel window mode
This mode makes each toplevel window get its own browser window, with
popup windows using the browser window of their transient parent.

Its not idea, as you can't get rid of all browser chrome by default, and
it means popups (like menus) can't extend outside the toplevels. But, it is
kinda cool.
2011-04-07 10:03:17 +02:00
8831efa735 [broadway] Fixup ungrab reference to old time variable 2011-04-07 10:03:17 +02:00
05bda376f6 [broadway] Break out document setup into its own function
In the future we might have more documents (one per toplevel browser
window).
2011-04-07 10:03:17 +02:00
06ad0f52e2 [broadway] Remove unused grab.time on browser side 2011-04-07 10:03:17 +02:00