Matthias Clasen
9af6d7f733
surface: Store popup parent
...
Store popup parents separately from transient-for
parents, since these are separate concepts with
different behaviors. And we need the parent in
the frontend, so we can use it in the fallback
move-to-rect implementation.
2019-05-28 20:25:14 +00:00
Matthias Clasen
712a5d4f25
Get rid of GdkSurfaceImpl
...
We don't need the complicated wrapper system anymore,
since client-side windows are gone. This commit moves
all the vfuncs to GtkSurfaceClass, and changes the
backends to just derive their surface implementation
from GdkSurface.
2019-05-28 20:25:14 +00:00
Matthias Clasen
d2951d3aac
Rename surface constructors
...
We want to use a gdk_surface_new_popup for popups,
and align the constructor names with the surface
types, so rename
gdk_surface_new_popup -> gdk_surface_new_temp
gdk_surface_new_popup_full -> gdk_surface_new_popup
The temp surface type will disappear eventually.
2019-05-28 20:25:14 +00:00
Matthias Clasen
47fb092393
gdk: Drop GdkWindowAttr
...
All the information in it is already contained
in the surface object we pass along, and none
of the backend implementations were using the
attributes at all.
2019-05-28 20:25:14 +00:00
Matthias Clasen
448312594c
broadway: Stop using gdk_surface_new_temp
...
This is in preparation for adding a proper
popup surface type.
2019-05-28 20:25:14 +00:00
Matthias Clasen
f692974e5a
gdk: Remove remnants of client-side windows
...
Now that all surfaces are native, we don't need
to separately keep track of grab surfaces and
their native ancestor anymore.
2019-05-28 20:25:14 +00:00
Matthias Clasen
9b54f124e5
surface: Simplify destroy implementation
...
Without child surfaces, there is no need to recurse.
2019-05-28 20:25:14 +00:00
Matthias Clasen
edab50139a
broadway: Stop using surface->parent
2019-05-28 20:25:13 +00:00
Matthias Clasen
989792cbc0
Drop child surfaces
...
Drop gdk_surface_child_new and the child surface type,
since we no longer use them. Deprecate surface apis
that only make sense with child surfaces.
2019-05-28 20:25:13 +00:00
Matthias Clasen
beedec1904
broadway: add frame times to the profiler
2019-05-24 07:19:14 -04:00
Benjamin Otte
e29cf84ac4
broadway: Install headers
...
How are we going to check a display for its broadway-ness otherwise?
2019-05-06 20:15:49 +02:00
Benjamin Otte
7ae675b469
build: Install the backend headers in the backend directories
...
That's where they are in the sources and we include them from other
headers. So make sure the directories match.
2019-05-06 20:14:53 +02:00
Matthias Clasen
51b2759eb1
surface: Drop group api
...
This was only ever implemented on X11, and
GTK is not using it at all. Relegate it to
x11-specific api.
2019-04-20 02:28:46 +00:00
Matthias Clasen
fed2db1493
window: Drop some x11-specific apis
...
The skip-taskbar, skip-pager and urgency hints were
only ever implemented for X11, and are not very useful
with modern desktops. Relegate the functionality to
x11 backend api, and drop the GtkWindow api.
2019-04-20 02:28:46 +00:00
Alexander Larsson
5bc8f8826f
broadway: Optionally support data: uris instead of blobs
...
This is nice when you want to make a "screenshot" by using save-as.
Its not going to perform as well though, so you have to enable it
by adding ?datauri to the url
2019-03-29 14:30:13 +01:00
Alexander Larsson
4e7eccbb49
broadway: Report some level of frame timings
...
This is not ideal because we report the time of a full roundtrip, rather
than the presentation time, but its better than nothing, and i'm not sure
how the browser time should be reconciled.
2019-03-29 14:30:13 +01:00
Alexander Larsson
27e47d5df6
broadway: Change events and ops enums to straight ints
2019-03-29 14:30:13 +01:00
Alexander Larsson
7002688398
broadway: More multi-display fixes
...
When doing idle flushing, do so per display rather than a global
and some find_display hack.
2019-03-29 14:30:13 +01:00
Alexander Larsson
54167ec3fa
broadway: Add warning for unexpected roundtrip delays
2019-03-29 14:30:13 +01:00
Alexander Larsson
a966fe1ed5
broadway: Keep track of surface owner and only send input to that client
2019-03-29 14:30:13 +01:00
Alexander Larsson
ab801fe782
broadway: Fix handling of input with multiple in-process GdkDisplays
...
We need each instance to only forward input to the right display.
This make the inspector work better.
2019-03-29 14:30:13 +01:00
Alexander Larsson
b58a366dc6
broadway: Support patching nodes for textures and transforms
2019-03-29 14:30:13 +01:00
Alexander Larsson
f30ba56323
broadway: Reintroduce smarter diffing
...
We now send very minimal diff operations.
2019-03-29 14:30:13 +01:00
Alexander Larsson
4dfe2e6e2f
broadway: Initial restructuring of node tree diffing
...
This goes back to a very naive diff, but that reuses nodes from
previous frames using the node id. This will be a bettter base
to start from.
2019-03-29 14:30:13 +01:00
Alexander Larsson
90c5a5ff6b
broadway: Update broadway_node_type_names
2019-03-29 14:30:13 +01:00
Alexander Larsson
6040a7370c
Broadway: Send configure notify on move/resize too
2019-03-29 14:30:13 +01:00
Alexander Larsson
c8d7b4a79a
broadway: Fix coordinates when drag move/resizeing
...
The x/y passed in are in the surface, not root coords.
2019-03-29 14:30:13 +01:00
Matthias Clasen
f89c93ea8e
Merge branch 'window-api-cleanup' into 'master'
...
GtkWindow api cleanup
See merge request GNOME/gtk!674
2019-03-28 00:14:51 +00:00
Matthias Clasen
8ef4e231ec
gdk: Stop implementing set_role
...
All but the X implementation of these were
empty anyway. And the X one is just setting
a property.
2019-03-27 17:29:17 -04:00
Alexander Larsson
9212727f53
broadway: Use css transforms
...
This allows generic transforms nodes to work.
2019-03-27 19:27:16 +01:00
Alexander Larsson
411dc7e138
broadway: Fix leftover dom modification not using display_commands
2019-03-27 14:21:28 +01:00
Matthias Clasen
21580309d3
Rename gdk_surface_get_device_position_double
...
Drop the _double suffix, now that the int version is gone.
2019-03-26 18:12:54 -04:00
Alexander Larsson
6fce18e1a1
broadway: Remove some spew
2019-03-26 17:09:41 +01:00
Alexander Larsson
cf4226586a
broadway: Load all textures before applying display ops, fixing flickers
2019-03-26 17:07:47 +01:00
Alexander Larsson
0481aa10e7
broadway: Use const use for constants in the js code
2019-03-26 17:07:47 +01:00
Alexander Larsson
edbaa0964f
broadway: Clean up stuff using const defines
2019-03-26 17:07:47 +01:00
Alexander Larsson
fbefec52a5
Broadway: Add id for nodes and reuse old ones
...
When sending render nodes from the client to the daemon we add an id,
and whenever we're about to re-send the entire tree node we instead
send the old id. We track all the nodes for the previous frame
of the surface this way.
Having the id on the daemon side will allow us do to much better deltas.
2019-03-26 17:07:47 +01:00
Alexander Larsson
87a13fe3d2
broadway: Prepare for splitting display ops out of command handling
2019-03-26 17:07:47 +01:00
Alexander Larsson
2f85443e37
broadway: Refcount textures
...
We want to delay some rendering, and to make that safe we need to correctly
refcount the use of blob uris for the textures so that we don't unref
it while something is scheduled to use it.
2019-03-26 17:07:47 +01:00
Alexander Larsson
3bbbe9f71b
broadway: Don't crash of drag-resizing when already active
...
This is what the X11 code does.
2019-03-26 17:07:47 +01:00
Alexander Larsson
890b759091
broadway: Send actual float32, not some hack
2019-03-26 17:07:47 +01:00
Alexander Larsson
d997903d29
broadway: Use DataView instead of hand-rolled int parsers
...
This is nicer in general, but also will let us do floats more sanely.
2019-03-26 17:07:47 +01:00
Alexander Larsson
b097f0a7d8
Broadway: Add node for debug nodes
...
This can be helpful when debugging broadway.
2019-03-26 17:07:47 +01:00
Alexander Larsson
1b5b1bfd0e
broadway: Don't fall back for translation transform nodes
...
These are trivial anyway
2019-03-26 17:07:47 +01:00
Matthias Clasen
3d37f08f38
Remove gdk_device_warp
...
This was only ever implemented on X11, and is
not something we want to encourage apps to do, ever.
2019-03-24 20:49:08 -04:00
Emmanuele Bassi
45361e19c3
Rename more GSources to use gtk
2019-02-06 10:37:24 +01:00
Mickael Istria
14010899b5
Issue #1633 - Ensure focus on click
...
This is necessary to give back focus to the Broadway elements when
content is embedded in an IFrame.
Signed-off-by: Mickael Istria <mistria@redhat.com>
2019-02-04 17:46:09 +01:00
Benjamin Otte
375fbd4e47
gdk: Remove key_event->string and key_event->length
...
They're unused.
2018-07-30 19:32:38 +02:00
Benjamin Otte
259be23ff2
broadway: Remove unused variable
2018-07-24 20:55:45 +02:00
Nirbheek Chauhan
5df4d27752
meson: libgdk-broadway.a depends on broadwayjs.h
...
Fixes https://gitlab.gnome.org/GNOME/gtk/issues/1218
Also fix another dependency error I found.
2018-07-23 20:15:44 +05:30