Benjamin Otte
0ff3340da7
main: Implement storing all clipboards
2017-12-03 05:46:48 +01:00
Benjamin Otte
4cce109e16
application: Put shared code into a common function
2017-12-03 05:46:48 +01:00
Benjamin Otte
fe7c283aea
clipboard: Add infrastructure to store clipboards
...
Clipboard managers will be so happy once the backends actually implement
it!
2017-12-03 05:46:48 +01:00
Benjamin Otte
51e46cc898
contentprovider: Add ref_storable_formats()
...
This is to be used for advocating to clipboard managers.
2017-12-03 05:46:48 +01:00
Benjamin Otte
ca96fac488
filechooserwidget: Port to new clipboard
...
We use the new GDK_TYPE_FILE_LIST here.
2017-12-03 05:46:48 +01:00
Benjamin Otte
6b326b14c0
gdk: Add GDK_TYPE_FILE_LIST with serializers
...
This is a GSList of GFile and we want it so we can operate with lists of
files and text/uri-list.
I chose GSList over GList because that's what the GtkFileChooser API
uses, too.
2017-12-03 05:46:48 +01:00
Benjamin Otte
928c98a84e
gdk: Add serializers and deserializers for GFile
...
in particular, support:
GFile <=> text/uri-list
GFile => text/plain
2017-12-03 05:46:48 +01:00
Benjamin Otte
39d4622563
tests: Improve formats list for testclipboard2
2017-12-03 05:46:48 +01:00
Benjamin Otte
5632d0eabb
label: Port to new clipboard
2017-12-03 05:46:48 +01:00
Benjamin Otte
f53848c360
textview: Redo clipboard handling
...
Instead of using GtkClipboard and handling everything ourselves, we now
put GtkTextBuffer into the GdkClipboard and register (de)serializers for
text/plain.
2017-12-03 05:46:48 +01:00
Benjamin Otte
4e06aaeaa8
gdk: Add gdk_content_formats_new_for_gtype()
...
Many places create formats for a single tpye, so make it easy for them
to get this without having to create a builder first.
2017-12-03 05:46:48 +01:00
Benjamin Otte
cc07800570
gdk: Allow setting task data on (de)serializers
...
This mirrors GTask.
2017-12-03 05:46:48 +01:00
Benjamin Otte
c146132a4a
gtk-demo: Port clipboards example to new clipboard
2017-12-03 05:46:48 +01:00
Benjamin Otte
8cd5e0af1a
recentchooser: Port to GdkClipboard
2017-12-03 05:46:48 +01:00
Benjamin Otte
909b6877bd
linkbutton: Port to GdkClipboard
2017-12-03 05:46:48 +01:00
Benjamin Otte
825612b419
a11y: Port to GdkClipboard
2017-12-03 05:46:47 +01:00
Benjamin Otte
54c8a4b3b7
widget: Add gtk_widget_get_clipboard()
...
... and gtk_widget_get_primary_clipboard().
They both give out the new GdkClipboard.
2017-12-03 05:46:47 +01:00
Benjamin Otte
a59572f96d
widget: gtk_widget_get_clipboard => gtk_widget_get_old_clipboard
...
Just rename the function, so the previous one can be used for the
new clipboard.
2017-12-03 05:46:47 +01:00
Benjamin Otte
6fffa5b171
tests: Open a 2nd display in testclipboard2
...
This allows testing local transfer of data as well as remote transfer
(by transferring data between clipboards of both Displays).
2017-12-03 05:46:47 +01:00
Benjamin Otte
134076e738
x11: Implement claiming the X Selection with the clipboard
...
... and of course support writing to other apps.
2017-12-03 05:46:47 +01:00
Benjamin Otte
e2014850b9
tests: Add possibility to set invalid UTF-8 and clear clipboard
2017-12-03 05:46:47 +01:00
Benjamin Otte
c66a61d896
x11: Add gdk_x11_display_get_max_request_size()
...
There's multiple places in the clipboard code where I need it, so make
it a custom function.
2017-12-03 05:46:47 +01:00
Benjamin Otte
8e132ef0c4
clipboard: Allow claiming the clipboard to fail
...
Also make clipboard_claim() a vfunc so backends can override it.
Because the whole operation a vfunc, backends have the option of adding
code before the actual claim is done and potentially even fail or do
something after the successful claim.
2017-12-03 05:46:47 +01:00
Benjamin Otte
7426f1a16b
gdkcontentformats: Change the matching API
...
Instead of having just one function that has the gtype and mime type as
out arguments, have 3 functions: 1 that finds any match, 1 that finds a
GType match and one for a mime type match.
This makes the API way more convenient to use.
2017-12-03 05:46:47 +01:00
Benjamin Otte
25c3895836
clipboard: Add serialization
...
This completes the local clipboard code.
2017-12-03 05:46:47 +01:00
Benjamin Otte
12ca641ff5
clipboard: Implement local fallback clipboard transfers
...
This requires implementing a "pipe" so we can have 2 streams running:
contentprovider => serializer => outputstream
inputstream => deserializer => reader
And the pipe shoves the data from the outputstream into the inputstream.
2017-12-03 05:46:47 +01:00
Benjamin Otte
888e5257e0
clipboard: Introduce GdkContentProvider
...
GdkContentProvider is the object that represents local data in the
clipboard.
This patch only introduces the object and adds the clipboard properties,
it does not yet provide a way for the actual implementations to access
it.
The only access that is implemented is the local shortcut GValue access.
2017-12-03 05:46:47 +01:00
Benjamin Otte
3023d254dd
clipboard: Make value getters set the passed in value
...
Don't return a const GValue, that's ugly API. Instead require people to
pass in a preinitialized GValue and set that one.
2017-12-03 05:46:47 +01:00
Benjamin Otte
9b78d76873
x11: Improve fallbacks for text
...
(1) Try all passed in formats in order if one of them fails.
(2) Don't blindly accept all formats, make sure they are mime types
(3) Add a bunch of special non-mime types that plug converters to
get to mime types
2017-12-03 05:46:46 +01:00
Benjamin Otte
88684baecf
clipboard: Add gdk_clipboard_read_text_async()
...
Also add deserializers for G_TYPE_STRING.
2017-12-03 05:46:28 +01:00
Benjamin Otte
02d1f90d13
clipboard: Add gdk_clipboard_read_pixbuf_async()
2017-12-03 05:46:28 +01:00
Benjamin Otte
91910ba013
gdk: Im[plement content deserializing
...
Add infrastructure to do GInputStream => GType conversions. Use that to
implement gdk_clipboard_read_value() which reads into GValues.
2017-12-03 05:46:27 +01:00
Benjamin Otte
970cb100af
x11: Improve debugging output for selection input stream
2017-12-03 05:46:27 +01:00
Benjamin Otte
41f70e18af
clipboard: Refactor gdk_clipboard_read() to be async
...
This allows us not just to pass any mime type to the read function, but
it also makes it possible to pass multiple mime types and the clipboard
can then try them in order until it finds a supported one.
This is so far not implemented though.
2017-12-03 05:46:26 +01:00
Benjamin Otte
516f35b865
x11: Use async queue and implement sync reads on selections stream
...
Turns out, way too many async operations are implemented by running the
sync operation in a thread. The easiest solution is to support that is
to use a GAsyncQueue for the buffers and deadlock if called from the
main thread.
2017-12-03 05:43:24 +01:00
Benjamin Otte
3506ae6085
tests: Add a new test app for GdkClipboard
2017-12-03 05:43:24 +01:00
Benjamin Otte
c91a38b013
clipboard: Implement gdk_clipboard_read()
2017-12-03 05:43:24 +01:00
Benjamin Otte
13fb3fd4a0
x11: Implement INCR reads
2017-12-03 05:43:24 +01:00
Benjamin Otte
fe9045d82e
x11: Various clipboard cleanups
...
(1) Turn X11 clipboard event handling into a regular filter function
(2) Maintain a timestamp in the clipboard, so we can pass it when
querying selections.
2017-12-03 05:43:24 +01:00
Benjamin Otte
a5ab9a9671
clipboard: Add gdk_clipboard_claim_remote()
...
This allows the remote clipboard to take over. The X11 clipboard already
does that.
2017-12-03 05:43:24 +01:00
Benjamin Otte
4728dd0a9e
x11: Add an initial clipboard implementation
...
This does nothing but download the targets and debug-print them.
2017-12-03 05:43:24 +01:00
Matthias Clasen
e94b9b9a62
gdk: A GdkClipboard API draft
...
This commit adds a GdkClipboard object which is intended to
replace GtkClipboard, eventually.
2017-12-03 05:43:24 +01:00
Руслан Ижбулатов
174a36257f
GDK W32: Plug a resource leak
...
Ensure that surfaces allocated in the impl are destroyed in finalize()
https://bugzilla.gnome.org/show_bug.cgi?id=787089
2017-12-03 03:19:02 +00:00
Piotr Drąg
4198434261
Update Polish translation
2017-12-02 18:45:33 +01:00
Benjamin Otte
481c6ad99a
dnd: Add gtk_drag_set_icon_texture()
2017-12-02 16:21:58 +01:00
Benjamin Otte
20de4c86ad
selection: Add texture getter/setter
2017-12-02 16:21:58 +01:00
Benjamin Otte
85b3f6d372
image: Add gtk_image_new_from_texture()
...
Docs and header knew about this function.
There just was no implementation.
2017-12-02 16:21:58 +01:00
Benjamin Otte
373848f561
image: Store pixbufs as textures, not surfaces
2017-12-02 16:21:58 +01:00
Benjamin Otte
9048d40bc2
vulkan: Fix mask shader to premultiply color
...
The inColor wasn't premultiplied, so the resulting colors were wrong
with translucent borders.
2017-12-02 16:21:58 +01:00
Benjamin Otte
abc8d61730
vulkan: Fix border shader to premultiply color
...
The inColor wasn't premultiplied, so the resulting colors were wrong
with translucent borders.
2017-12-02 16:21:58 +01:00