aboutsummaryrefslogtreecommitdiffstats
path: root/src/haiku_select.cc
diff options
context:
space:
mode:
authorAlan Mackenzie2022-01-22 11:02:50 +0000
committerAlan Mackenzie2022-01-22 11:02:50 +0000
commit14d64a8adcc866deecd758b898e8ef2d836b354a (patch)
tree83cff9669e266f8e283ccb8cd7518e909240f1e1 /src/haiku_select.cc
parentbdd9b5b8a0d37dd09ee530c1dab3a44bee09e0f8 (diff)
parentebe334cdc234de2897263aed4c05ac7088c11857 (diff)
downloademacs-scratch/correct-warning-pos.tar.gz
emacs-scratch/correct-warning-pos.zip
Merge branch 'master' into scratch/correct-warning-posscratch/correct-warning-pos
Diffstat (limited to 'src/haiku_select.cc')
-rw-r--r--src/haiku_select.cc27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/haiku_select.cc b/src/haiku_select.cc
index 041e244f3ea..d39000d8bbe 100644
--- a/src/haiku_select.cc
+++ b/src/haiku_select.cc
@@ -29,6 +29,9 @@ along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. */
29static BClipboard *primary = NULL; 29static BClipboard *primary = NULL;
30static BClipboard *secondary = NULL; 30static BClipboard *secondary = NULL;
31static BClipboard *system_clipboard = NULL; 31static BClipboard *system_clipboard = NULL;
32static unsigned long count_clipboard = 0;
33static unsigned long count_primary = 0;
34static unsigned long count_secondary = 0;
32 35
33int selection_state_flag; 36int selection_state_flag;
34 37
@@ -174,6 +177,7 @@ BClipboard_set_system_data (const char *type, const char *data,
174 return; 177 return;
175 178
176 BClipboard_set_data (system_clipboard, type, data, len, clear); 179 BClipboard_set_data (system_clipboard, type, data, len, clear);
180 count_clipboard = system_clipboard->SystemCount ();
177} 181}
178 182
179void 183void
@@ -184,6 +188,7 @@ BClipboard_set_primary_selection_data (const char *type, const char *data,
184 return; 188 return;
185 189
186 BClipboard_set_data (primary, type, data, len, clear); 190 BClipboard_set_data (primary, type, data, len, clear);
191 count_primary = primary->SystemCount ();
187} 192}
188 193
189void 194void
@@ -194,6 +199,7 @@ BClipboard_set_secondary_selection_data (const char *type, const char *data,
194 return; 199 return;
195 200
196 BClipboard_set_data (secondary, type, data, len, clear); 201 BClipboard_set_data (secondary, type, data, len, clear);
202 count_secondary = secondary->SystemCount ();
197} 203}
198 204
199void 205void
@@ -220,6 +226,27 @@ BClipboard_secondary_targets (char **buf, int len)
220 BClipboard_get_targets (secondary, buf, len); 226 BClipboard_get_targets (secondary, buf, len);
221} 227}
222 228
229bool
230BClipboard_owns_clipboard (void)
231{
232 return (count_clipboard
233 == system_clipboard->SystemCount ());
234}
235
236bool
237BClipboard_owns_primary (void)
238{
239 return (count_primary
240 == primary->SystemCount ());
241}
242
243bool
244BClipboard_owns_secondary (void)
245{
246 return (count_secondary
247 == secondary->SystemCount ());
248}
249
223void 250void
224init_haiku_select (void) 251init_haiku_select (void)
225{ 252{