Compare commits

...

16 Commits
4.6.8 ... 4.6.9

Author SHA1 Message Date
Matthias Clasen
14995af52b 4.6.9 2022-12-22 23:04:48 -05:00
Matthias Clasen
a22de46b4a Merge branch 'cherry-pick-4.6' into 'gtk-4-6'
Cherry-pick changes from main for gtk-4-6

See merge request GNOME/gtk!5337
2022-12-15 16:17:22 +00:00
Matthias Clasen
2eb252199c text: Prevent unexpected notify::direction emissions
Calling gdk_device_get_direction can trigger a
notify::direction emissions, since the X11 backend
determines the direction on demand. Prevent that by
forcing the direction to be determined ahead of time.

Fixes: #5311
2022-12-15 01:16:09 +02:00
Matthias Clasen
6c8c30b249 a11y: Be safe against state type changes
For some of the a11y states, calling gtk_accessible_reset_state
can change the type of the state value from boolean or tristate
to undefined.

Handle that, instead of throwing criticals.

Related: !4910
2022-12-15 01:13:52 +02:00
Carlos Garnacho
25a47cedde gdk/x11: Clear all data in GdkSurfaceX11 finalization
Currently, the GdkSurfaceX11 implementation relies that the upper
layers hid the surface before destruction, and that no
GdkSurfaceClass.compute_resize happened between them. If these
circumstances happened, there would be a compute_size timeout left
dangling after the surface got destroyed, poking at incorrect data
later on. Something that looks like this was reported in the
recent mutter-x11-frames "SSD frames server":

    mutter-x11-frames:423016): GLib-GObject-WARNING **: 19:41:16.869: invalid unclassed pointer in cast to 'GtkWindow'

    Thread 1 "mutter-x11-fram" received signal SIGTRAP, Trace/breakpoint trap.
    g_logv (log_domain=0x7ffff7f7c4f8 "GLib-GObject", log_level=G_LOG_LEVEL_WARNING, format=<optimized out>, args=<optimized out>) at ../../../glib/gmessages.c:1433
    1433	../../../glib/gmessages.c: No such file or directory.
    (gdb) bt
    #0  g_logv (log_domain=0x7ffff7f7c4f8 "GLib-GObject", log_level=G_LOG_LEVEL_WARNING, format=<optimized out>, args=<optimized out>) at ../../../glib/gmessages.c:1433
    #1  0x00007ffff73470ff in g_log (log_domain=log_domain@entry=0x7ffff7f7c4f8 "GLib-GObject", log_level=log_level@entry=G_LOG_LEVEL_WARNING, format=format@entry=0x7ffff7f84da8 "invalid unclassed pointer in cast to '%s'")
        at ../../../glib/gmessages.c:1471
    #2  0x00007ffff7f72892 in g_type_check_instance_cast (type_instance=type_instance@entry=0x5555558e04b0, iface_type=<optimized out>) at ../../../gobject/gtype.c:4144
    #3  0x00007ffff791e77d in toplevel_compute_size (toplevel=<optimized out>, size=0x7fffffffe170, widget=0x5555558e04b0) at ../../../gtk/gtkwindow.c:4227
    #4  0x00007ffff7f4f3b0 in g_closure_invoke (closure=0x555555898cc0, return_value=return_value@entry=0x0, n_param_values=2, param_values=param_values@entry=0x7fffffffdeb0, invocation_hint=invocation_hint@entry=0x7fffffffde30)
        at ../../../gobject/gclosure.c:832
    #5  0x00007ffff7f62076 in signal_emit_unlocked_R
        (node=node@entry=0x55555588feb0, detail=detail@entry=0, instance=instance@entry=0x55555560e990, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffdeb0)
        at ../../../gobject/gsignal.c:3796
    #6  0x00007ffff7f68bf5 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffe050) at ../../../gobject/gsignal.c:3549
    #7  0x00007ffff7f68dbf in <emit signal ??? on instance 0x55555560e990 [GdkX11Toplevel]> (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=0) at ../../../gobject/gsignal.c:3606
    #8  0x00007ffff7a8de96 in gdk_toplevel_notify_compute_size (toplevel=<optimized out>, size=size@entry=0x7fffffffe170) at ../../../gdk/gdktoplevel.c:112
    #9  0x00007ffff7a4b15a in compute_toplevel_size (surface=surface@entry=0x55555560e990 [GdkX11Toplevel], update_geometry=update_geometry@entry=1, width=width@entry=0x7fffffffe220, height=height@entry=0x7fffffffe224)
        at ../../../gdk/x11/gdksurface-x11.c:281
    #10 0x00007ffff7a4c3b2 in compute_size_idle (user_data=0x55555560e990) at ../../../gdk/x11/gdksurface-x11.c:356
    #11 0x00007ffff733f67f in g_main_dispatch (context=0x55555563f6e0) at ../../../glib/gmain.c:3444
    #12 g_main_context_dispatch (context=context@entry=0x55555563f6e0) at ../../../glib/gmain.c:4162
    #13 0x00007ffff733fa38 in g_main_context_iterate (context=0x55555563f6e0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4238
    #14 0x00007ffff733fcef in g_main_loop_run (loop=loop@entry=0x5555560874a0) at ../../../glib/gmain.c:4438
    #15 0x0000555555557de0 in main (argc=<optimized out>, argv=<optimized out>) at ../src/frames/main.c:68

It perhaps makes sense to warn in these situations, but either way
it sounds like gdk_surface_x11_finalize() could enforce the correct
behavior by ensuring there is no dangling timeouts/data. This commit
does that.
2022-12-14 23:41:36 +02:00
Matthias Clasen
d0eee04409 Don't emit ::notify from a getter
GdkX11Keymap ddetermines the direction of the
keymap on demand, and was emitting notify::direction
2022-12-14 23:36:20 +02:00
Benjamin Otte
a089bc075e Merge branch 'cherry-pick-a619e48' into 'gtk-4-6'
[4.6] GLX: Add extra glXMakeContextCurrent () call to work around a DRI issue

See merge request GNOME/gtk!5288
2022-12-03 11:07:21 +00:00
Luca Bacci
a619e48a67 GLX: Add extra glXMakeContextCurrent () call to work around a DRI issue
Reference: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7808

Fixes #4499, #5387, #5170
2022-12-02 19:45:38 +02:00
Matthias Clasen
b7ce33e83f Merge branch 'cherry-pick-4.6' into 'gtk-4-6'
Cherry-pick changes from main for gtk-4-6

See merge request GNOME/gtk!5214
2022-11-17 04:20:12 +00:00
Zurab Kargareteli
91cddf2d48 Update Georgian translation 2022-11-13 22:38:06 +00:00
Adam Williamson
8d7bde0e8a focus: fall back to old behaviour if we didn't focus anything
8455b9ac74 seems to have introduced a problem where we can wind
up focusing no widget at all if the `while (parent)` loop doesn't
find a widget it can successfully move the focus to. This 'fixes'
that by falling back to doing the previous thing if we make it
all the way through that loop without moving the focus. Thanks to
@coreyberla for a hint to improve the implementation.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2022-11-12 03:55:53 +02:00
Carlos Garnacho
799da2883a gdk/wayland: Fix button mask calculation on button events
There's 2 things broken here:
- The mask was calculated on top of the GDK button (i.e. skipping
  4-7 buttons), so GDK_BUTTON4_MASK and GDK_BUTTON5_MASK were not
  assigned. This is now calculated on the (continuous) BTN_ evcodes
  so it is guaranteed that the next 2 physical buttons (i.e.
  back/forward) get these two places in the mask assigned.
- Furthermore, these buttons would be pushed to places in the
  modifier mask that they didn't belong to. It is now checked hard
  that only the first 5 buttons enable a modifier flag.

Overall, this ensures that no event masks with bonkers values are
forwarded, and that no stale implicit grabs are left after additional
buttons are pressed.

Closes: https://gitlab.gnome.org/GNOME/gtk/-/issues/5301
2022-11-12 03:55:41 +02:00
Kukuh Syafaat
2282e9f418 Update Indonesian translation 2022-11-03 03:49:18 +00:00
Matthias Clasen
18ff344464 Merge branch 'revert-cde32368f0eb4f83de8f5b1a443195a4aa15d874' into 'gtk-4-6'
[4.6] Revert "treepopover: Do not propagate natural width of content"

See merge request GNOME/gtk!5092
2022-10-26 22:08:00 +00:00
Matthias Clasen
e5099da12d Post-release version bump 2022-10-24 13:46:17 -04:00
Mat
3ecb30353a Revert "treepopover: Do not propagate natural width of content"
This reverts commit cde32368f0.
2022-10-06 19:09:13 +03:00
12 changed files with 387 additions and 319 deletions

17
NEWS
View File

@@ -1,3 +1,20 @@
Overview of Changes in 4.6.9, 23-12-2022
========================================
* GtkText:
- Prevent unexpected notify::direction emissions
* Wayland:
- Fix button masks
* X11:
- Fix some ordering problems with surface destruction
* Translation updates
Georgian
Indonesian
Overview of Changes in 4.6.8, 24-10-2022
========================================

View File

@@ -83,6 +83,10 @@
#define BTN_STYLUS3 0x149 /* Linux 4.15 */
#endif
#define ALL_BUTTONS_MASK (GDK_BUTTON1_MASK | GDK_BUTTON2_MASK | \
GDK_BUTTON3_MASK | GDK_BUTTON4_MASK | \
GDK_BUTTON5_MASK)
#define GDK_SEAT_NOTE(seat,type,action) GDK_DISPLAY_NOTE(gdk_seat_get_display (GDK_SEAT (seat)),type,action)
typedef struct _GdkWaylandDevicePad GdkWaylandDevicePad;
@@ -1696,7 +1700,8 @@ pointer_handle_button (void *data,
gdk_wayland_seat_set_frame_event (seat, event);
modifier = 1 << (8 + gdk_button - 1);
modifier = (GDK_BUTTON1_MASK << (button - BUTTON_BASE - 1)) & ALL_BUTTONS_MASK;
if (state)
seat->pointer_info.button_modifiers |= modifier;
else

View File

@@ -232,6 +232,12 @@ gdk_x11_gl_context_glx_make_current (GdkGLContext *context,
g_message ("Making GLX context %p current to drawable %lu",
context, (unsigned long) drawable));
/* Work around a glitch, see
* https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/5281
*/
if (glXGetCurrentContext () != self->glx_context)
glXMakeContextCurrent (dpy, None, None, NULL);
if (!glXMakeContextCurrent (dpy, drawable, drawable, self->glx_context))
return FALSE;

View File

@@ -603,7 +603,7 @@ update_direction (GdkX11Keymap *keymap_x11,
keymap_x11->have_direction = TRUE;
}
if (!had_direction || old_direction != keymap_x11->current_direction)
if (had_direction && old_direction != keymap_x11->current_direction)
{
g_object_notify (G_OBJECT (keyboard), "direction");
return TRUE;

View File

@@ -759,6 +759,8 @@ gdk_x11_surface_finalize (GObject *object)
}
g_clear_pointer (&impl->surface_is_on_monitor, g_list_free);
g_clear_handle_id (&impl->compute_size_source_id, g_source_remove);
g_clear_pointer (&impl->toplevel_layout, gdk_toplevel_layout_unref);
g_free (impl->toplevel);

View File

@@ -953,22 +953,30 @@ gtk_at_spi_context_state_change (GtkATContext *ctx,
{
value = gtk_accessible_attribute_set_get_value (states, GTK_ACCESSIBLE_STATE_CHECKED);
switch (gtk_tristate_accessible_value_get (value))
if (value->value_class->type == GTK_ACCESSIBLE_VALUE_TYPE_TRISTATE)
{
switch (gtk_tristate_accessible_value_get (value))
{
case GTK_ACCESSIBLE_TRISTATE_TRUE:
emit_state_changed (self, "checked", TRUE);
emit_state_changed (self, "indeterminate", FALSE);
break;
case GTK_ACCESSIBLE_TRISTATE_MIXED:
emit_state_changed (self, "checked", FALSE);
emit_state_changed (self, "indeterminate", TRUE);
break;
case GTK_ACCESSIBLE_TRISTATE_FALSE:
emit_state_changed (self, "checked", FALSE);
emit_state_changed (self, "indeterminate", FALSE);
break;
default:
break;
}
}
else
{
case GTK_ACCESSIBLE_TRISTATE_TRUE:
emit_state_changed (self, "checked", TRUE);
emit_state_changed (self, "indeterminate", FALSE);
break;
case GTK_ACCESSIBLE_TRISTATE_MIXED:
emit_state_changed (self, "checked", FALSE);
emit_state_changed (self, "indeterminate", TRUE);
break;
case GTK_ACCESSIBLE_TRISTATE_FALSE:
emit_state_changed (self, "checked", FALSE);
emit_state_changed (self, "indeterminate", FALSE);
break;
default:
break;
}
}
@@ -1011,22 +1019,31 @@ gtk_at_spi_context_state_change (GtkATContext *ctx,
if (changed_states & GTK_ACCESSIBLE_STATE_CHANGE_PRESSED)
{
value = gtk_accessible_attribute_set_get_value (states, GTK_ACCESSIBLE_STATE_PRESSED);
switch (gtk_tristate_accessible_value_get (value))
if (value->value_class->type == GTK_ACCESSIBLE_VALUE_TYPE_TRISTATE)
{
switch (gtk_tristate_accessible_value_get (value))
{
case GTK_ACCESSIBLE_TRISTATE_TRUE:
emit_state_changed (self, "pressed", TRUE);
emit_state_changed (self, "indeterminate", FALSE);
break;
case GTK_ACCESSIBLE_TRISTATE_MIXED:
emit_state_changed (self, "pressed", FALSE);
emit_state_changed (self, "indeterminate", TRUE);
break;
case GTK_ACCESSIBLE_TRISTATE_FALSE:
emit_state_changed (self, "pressed", FALSE);
emit_state_changed (self, "indeterminate", FALSE);
break;
default:
break;
}
}
else
{
case GTK_ACCESSIBLE_TRISTATE_TRUE:
emit_state_changed (self, "pressed", TRUE);
emit_state_changed (self, "indeterminate", FALSE);
break;
case GTK_ACCESSIBLE_TRISTATE_MIXED:
emit_state_changed (self, "pressed", FALSE);
emit_state_changed (self, "indeterminate", TRUE);
break;
case GTK_ACCESSIBLE_TRISTATE_FALSE:
emit_state_changed (self, "pressed", FALSE);
emit_state_changed (self, "indeterminate", FALSE);
break;
default:
break;
}
}

View File

@@ -3258,8 +3258,12 @@ gtk_text_focus_changed (GtkEventControllerFocus *controller,
if (gtk_event_controller_focus_is_focus (controller))
{
if (keyboard)
g_signal_connect (keyboard, "notify::direction",
G_CALLBACK (direction_changed), self);
{
/* Work around unexpected notify::direction emissions */
gdk_device_get_direction (keyboard);
g_signal_connect (keyboard, "notify::direction",
G_CALLBACK (direction_changed), self);
}
gtk_text_im_set_focus_in (self);
gtk_text_reset_blink_time (self);

View File

@@ -271,6 +271,7 @@ gtk_tree_popover_init (GtkTreePopover *popover)
sw = gtk_scrolled_window_new ();
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
gtk_scrolled_window_set_propagate_natural_width (GTK_SCROLLED_WINDOW (sw), TRUE);
gtk_scrolled_window_set_propagate_natural_height (GTK_SCROLLED_WINDOW (sw), TRUE);
gtk_popover_set_child (GTK_POPOVER (popover), sw);

View File

@@ -4747,6 +4747,9 @@ maybe_unset_focus_and_default (GtkWindow *window)
parent = _gtk_widget_get_parent (parent);
}
if (!parent)
gtk_widget_child_focus (GTK_WIDGET (window), GTK_DIR_TAB_FORWARD);
priv->move_focus = FALSE;
g_clear_object (&priv->move_focus_widget);
}

View File

@@ -1,5 +1,5 @@
project('gtk', 'c',
version: '4.6.8',
version: '4.6.9',
default_options: [
'buildtype=debugoptimized',
'warning_level=1',

209
po/id.po
View File

@@ -14,8 +14,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gtk+ gtk-4-6\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gtk/-/issues/\n"
"POT-Creation-Date: 2022-07-03 02:19+0000\n"
"PO-Revision-Date: 2022-07-03 15:19+0700\n"
"POT-Creation-Date: 2022-10-26 22:08+0000\n"
"PO-Revision-Date: 2022-11-03 10:48+0700\n"
"Last-Translator: Andika Triwidada <andika@gmail.com>\n"
"Language-Team: Indonesian <gnome-l10n-id@googlegroups.com>\n"
"Language: id\n"
@@ -23,7 +23,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Poedit 3.0\n"
"X-Generator: Poedit 3.2.1\n"
#: gdk/broadway/gdkbroadway-server.c:135
#, c-format
@@ -567,7 +567,7 @@ msgstr "Gagal membaca data pada baris %d"
#: gdk/macos/gdkmacosclipboard.c:557 gdk/wayland/gdkclipboard-wayland.c:231
#: gdk/wayland/gdkdrop-wayland.c:203 gdk/wayland/gdkprimary-wayland.c:313
#: gdk/win32/gdkdrop-win32.c:1006 gdk/win32/gdkdrop-win32.c:1051
#: gdk/win32/gdkdrop-win32.c:1018 gdk/win32/gdkdrop-win32.c:1063
#: gdk/x11/gdkclipboard-x11.c:791 gdk/x11/gdkdrop-x11.c:233
msgid "No compatible transfer format found"
msgstr "Tidak ditemukan format transfer yang kompatibel"
@@ -678,39 +678,39 @@ msgid "Cannot get clipboard data. GetClipboardData() failed: 0x%lx."
msgstr ""
"Tidak dapat mendapatkan data papan klip. GetClipboardData() gagal: 0x%lx."
#: gdk/win32/gdkdrop-win32.c:937
#: gdk/win32/gdkdrop-win32.c:949
#, c-format
msgid "Cannot get DnD data. GlobalLock(0x%p) failed: 0x%lx."
msgstr "Tidak dapat mendapatkan data DnD. GlobalLock(0x%p) gagal: 0x%lx."
#: gdk/win32/gdkdrop-win32.c:946
#: gdk/win32/gdkdrop-win32.c:958
#, c-format
msgid "Cannot get DnD data. GlobalSize(0x%p) failed: 0x%lx."
msgstr "Tidak dapat mendapatkan data DnD. GlobalSize(0x%p) gagal: 0x%lx."
#: gdk/win32/gdkdrop-win32.c:957
#: gdk/win32/gdkdrop-win32.c:969
#, c-format
msgid "Cannot get DnD data. Failed to allocate %s bytes to store the data."
msgstr ""
"Tidak bisa memperoleh data DnD. Gagal mengalokasikan %s byte untuk menyimpan "
"data."
#: gdk/win32/gdkdrop-win32.c:1025
#: gdk/win32/gdkdrop-win32.c:1037
#, c-format
msgid "GDK surface 0x%p is not registered as a drop target"
msgstr "Permukaan GDK 0x%p tidak terdaftar sebagai target penurunan"
#: gdk/win32/gdkdrop-win32.c:1032
#: gdk/win32/gdkdrop-win32.c:1044
#, c-format
msgid "Target context record 0x%p has no data object"
msgstr "Catatan konteks target 0x%p tidak memiliki objek data"
#: gdk/win32/gdkdrop-win32.c:1070
#: gdk/win32/gdkdrop-win32.c:1082
#, c-format
msgid "IDataObject_GetData (0x%x) failed, returning 0x%lx"
msgstr "IDataObject_GetData (0x%x) gagal, menghasilkan 0x%lx"
#: gdk/win32/gdkdrop-win32.c:1102
#: gdk/win32/gdkdrop-win32.c:1114
#, c-format
msgid "Failed to transmute DnD data W32 format 0x%x to %p (%s)"
msgstr "Gagal mentransmisikan data DnD format W32 0x%x to %p (%s)"
@@ -925,7 +925,7 @@ msgctxt "accessibility"
msgid "Clears the contents of the entry"
msgstr "Bersihkan isi entri"
#: gtk/a11y/gtkatspiroot.c:255
#: gtk/a11y/gtkatspiroot.c:256
msgctxt "accessibility"
msgid "application"
msgstr "aplikasi"
@@ -2111,7 +2111,7 @@ msgstr "Berkas dengan nama itu sudah ada"
#: gtk/gtkmountoperation.c:610 gtk/gtkpagesetupunixdialog.c:283
#: gtk/gtkprintbackend.c:642 gtk/gtkprinteroptionwidget.c:724
#: gtk/gtkprintunixdialog.c:667 gtk/gtkprintunixdialog.c:823
#: gtk/gtkwindow.c:6154 gtk/inspector/css-editor.c:248
#: gtk/gtkwindow.c:6190 gtk/inspector/css-editor.c:248
#: gtk/inspector/recorder.c:1706 gtk/ui/gtkappchooserdialog.ui:45
#: gtk/ui/gtkassistant.ui:52 gtk/ui/gtkcolorchooserdialog.ui:33
#: gtk/ui/gtkfontchooserdialog.ui:24
@@ -2202,7 +2202,7 @@ msgid "If you delete an item, it will be permanently lost."
msgstr "Jika Anda menghapus suatu butir, itu akan hilang selamanya."
#: gtk/gtkfilechooserwidget.c:1211 gtk/gtkfilechooserwidget.c:1827
#: gtk/gtklabel.c:5659 gtk/gtktext.c:6077 gtk/gtktextview.c:8956
#: gtk/gtklabel.c:5659 gtk/gtktext.c:6084 gtk/gtktextview.c:8958
msgid "_Delete"
msgstr "_Hapus"
@@ -2478,19 +2478,19 @@ msgstr "Varian Karakter"
msgid "OpenGL context creation failed"
msgstr "Pembuatan konteks OpenGL gagal"
#: gtk/gtklabel.c:5656 gtk/gtktext.c:6065 gtk/gtktextview.c:8944
#: gtk/gtklabel.c:5656 gtk/gtktext.c:6072 gtk/gtktextview.c:8946
msgid "Cu_t"
msgstr "Po_tong"
#: gtk/gtklabel.c:5657 gtk/gtktext.c:6069 gtk/gtktextview.c:8948
#: gtk/gtklabel.c:5657 gtk/gtktext.c:6076 gtk/gtktextview.c:8950
msgid "_Copy"
msgstr "_Salin"
#: gtk/gtklabel.c:5658 gtk/gtktext.c:6073 gtk/gtktextview.c:8952
#: gtk/gtklabel.c:5658 gtk/gtktext.c:6080 gtk/gtktextview.c:8954
msgid "_Paste"
msgstr "Tem_pel"
#: gtk/gtklabel.c:5664 gtk/gtktext.c:6086 gtk/gtktextview.c:8977
#: gtk/gtklabel.c:5664 gtk/gtktext.c:6093 gtk/gtktextview.c:8979
msgid "Select _All"
msgstr "Pilih Semu_a"
@@ -2600,7 +2600,7 @@ msgid "%d:%02d"
msgstr "%d: %02d"
#: gtk/gtkmessagedialog.c:158 gtk/gtkmessagedialog.c:176
#: gtk/gtkprintbackend.c:643 gtk/gtkwindow.c:6155
#: gtk/gtkprintbackend.c:643 gtk/gtkwindow.c:6191
msgid "_OK"
msgstr "_Ok"
@@ -2722,19 +2722,19 @@ msgstr "GTK tidak dapat menemukan modul media. Periksa pemasangan Anda."
msgid "Tab list"
msgstr "Daftar tab"
#: gtk/gtknotebook.c:3249
#: gtk/gtknotebook.c:3250
msgid "Previous tab"
msgstr "Tab sebelumnya"
#: gtk/gtknotebook.c:3253
#: gtk/gtknotebook.c:3254
msgid "Next tab"
msgstr "Tab selanjutnya"
#: gtk/gtknotebook.c:4073
#: gtk/gtknotebook.c:4074
msgid "Tab"
msgstr "Tab"
#: gtk/gtknotebook.c:4371 gtk/gtknotebook.c:6579
#: gtk/gtknotebook.c:4372 gtk/gtknotebook.c:6580
#, c-format
msgid "Page %u"
msgstr "Halaman %u"
@@ -3297,42 +3297,42 @@ msgstr "Mengambil informasi pencetak…"
#. * multiple pages on a sheet when printing
#.
#: gtk/gtkprintunixdialog.c:2814
#: modules/printbackends/gtkprintbackendcups.c:5675
#: modules/printbackends/gtkprintbackendcups.c:5682
msgid "Left to right, top to bottom"
msgstr "Kiri ke kanan, puncak ke dasar"
#: gtk/gtkprintunixdialog.c:2814
#: modules/printbackends/gtkprintbackendcups.c:5675
#: modules/printbackends/gtkprintbackendcups.c:5682
msgid "Left to right, bottom to top"
msgstr "Kiri ke kanan, dasar ke puncak"
#: gtk/gtkprintunixdialog.c:2815
#: modules/printbackends/gtkprintbackendcups.c:5676
#: modules/printbackends/gtkprintbackendcups.c:5683
msgid "Right to left, top to bottom"
msgstr "Kanan ke kiri, puncak ke dasar"
#: gtk/gtkprintunixdialog.c:2815
#: modules/printbackends/gtkprintbackendcups.c:5676
#: modules/printbackends/gtkprintbackendcups.c:5683
msgid "Right to left, bottom to top"
msgstr "Kanan ke kiri, dasar ke puncak"
#: gtk/gtkprintunixdialog.c:2816
#: modules/printbackends/gtkprintbackendcups.c:5677
#: modules/printbackends/gtkprintbackendcups.c:5684
msgid "Top to bottom, left to right"
msgstr "Puncak ke dasar, kiri ke kanan"
#: gtk/gtkprintunixdialog.c:2816
#: modules/printbackends/gtkprintbackendcups.c:5677
#: modules/printbackends/gtkprintbackendcups.c:5684
msgid "Top to bottom, right to left"
msgstr "Puncak ke dasar, kanan ke kiri"
#: gtk/gtkprintunixdialog.c:2817
#: modules/printbackends/gtkprintbackendcups.c:5678
#: modules/printbackends/gtkprintbackendcups.c:5685
msgid "Bottom to top, left to right"
msgstr "Dasar ke puncak, kiri ke kanan"
#: gtk/gtkprintunixdialog.c:2817
#: modules/printbackends/gtkprintbackendcups.c:5678
#: modules/printbackends/gtkprintbackendcups.c:5685
msgid "Bottom to top, right to left"
msgstr "Dasar ke puncak, kanan ke kiri"
@@ -3466,19 +3466,24 @@ msgstr "Tak Ada Hasil yang Ditemukan"
msgid "Try a different search"
msgstr "Cobalah pencarian lain"
#: gtk/gtkshow.c:177
#: gtk/gtkshow.c:175
msgid "Could not show link"
msgstr "Tidak dapat menampilkan tautan"
#: gtk/gtktext.c:6091 gtk/gtktextview.c:8982
#: gtk/gtkstacksidebar.c:155
msgctxt "accessibility"
msgid "Sidebar"
msgstr "Bilah sisi"
#: gtk/gtktext.c:6098 gtk/gtktextview.c:8984
msgid "Insert _Emoji"
msgstr "Sisipkan _Emoji"
#: gtk/gtktextview.c:8964
#: gtk/gtktextview.c:8966
msgid "_Undo"
msgstr "_Tidak Jadi"
#: gtk/gtktextview.c:8968
#: gtk/gtktextview.c:8970
msgid "_Redo"
msgstr "_Jadi Lagi"
@@ -3505,12 +3510,12 @@ msgctxt "volume percentage"
msgid "%d%%"
msgstr "%d%%"
#: gtk/gtkwindow.c:6142
#: gtk/gtkwindow.c:6178
#, c-format
msgid "Do you want to use GTK Inspector?"
msgstr "Apakah Anda ingin memakai GTK Inspector?"
#: gtk/gtkwindow.c:6144
#: gtk/gtkwindow.c:6180
#, c-format
msgid ""
"GTK Inspector is an interactive debugger that lets you explore and modify "
@@ -3521,7 +3526,7 @@ msgstr ""
"mengeksplorasi dan mengubah internal dari sebarang aplikasi GTK. Memakainya "
"dapat menyebabkan aplikasi rusak atau remuk."
#: gtk/gtkwindow.c:6149
#: gtk/gtkwindow.c:6185
msgid "Dont show this message again"
msgstr "Jangan tampilkan pesan ini lagi"
@@ -6632,59 +6637,59 @@ msgstr "Menolak Tugas"
msgid "; "
msgstr "; "
#: modules/printbackends/gtkprintbackendcups.c:4612
#: modules/printbackends/gtkprintbackendcups.c:4679
#: modules/printbackends/gtkprintbackendcups.c:4619
#: modules/printbackends/gtkprintbackendcups.c:4686
msgctxt "printing option"
msgid "Two Sided"
msgstr "Dua Sisi"
#: modules/printbackends/gtkprintbackendcups.c:4613
#: modules/printbackends/gtkprintbackendcups.c:4620
msgctxt "printing option"
msgid "Paper Type"
msgstr "Tipe Kertas"
#: modules/printbackends/gtkprintbackendcups.c:4614
#: modules/printbackends/gtkprintbackendcups.c:4621
msgctxt "printing option"
msgid "Paper Source"
msgstr "Sumber Kertas"
#: modules/printbackends/gtkprintbackendcups.c:4615
#: modules/printbackends/gtkprintbackendcups.c:4680
#: modules/printbackends/gtkprintbackendcups.c:4622
#: modules/printbackends/gtkprintbackendcups.c:4687
msgctxt "printing option"
msgid "Output Tray"
msgstr "Baki Keluaran"
#: modules/printbackends/gtkprintbackendcups.c:4616
#: modules/printbackends/gtkprintbackendcups.c:4623
msgctxt "printing option"
msgid "Resolution"
msgstr "Resolusi"
#: modules/printbackends/gtkprintbackendcups.c:4617
#: modules/printbackends/gtkprintbackendcups.c:4624
msgctxt "printing option"
msgid "GhostScript pre-filtering"
msgstr "Pra penapisan GhostScript"
#: modules/printbackends/gtkprintbackendcups.c:4626
#: modules/printbackends/gtkprintbackendcups.c:4633
msgctxt "printing option value"
msgid "One Sided"
msgstr "Satu Sisi"
#. Translators: this is an option of "Two Sided"
#: modules/printbackends/gtkprintbackendcups.c:4628
#: modules/printbackends/gtkprintbackendcups.c:4635
msgctxt "printing option value"
msgid "Long Edge (Standard)"
msgstr "Sisi Panjang (Standar)"
#. Translators: this is an option of "Two Sided"
#: modules/printbackends/gtkprintbackendcups.c:4630
#: modules/printbackends/gtkprintbackendcups.c:4637
msgctxt "printing option value"
msgid "Short Edge (Flip)"
msgstr "Sisi Pendek (Putar)"
#. Translators: this is an option of "Paper Source"
#: modules/printbackends/gtkprintbackendcups.c:4632
#: modules/printbackends/gtkprintbackendcups.c:4634
#: modules/printbackends/gtkprintbackendcups.c:4642
#: modules/printbackends/gtkprintbackendcups.c:4639
#: modules/printbackends/gtkprintbackendcups.c:4641
#: modules/printbackends/gtkprintbackendcups.c:4649
msgctxt "printing option value"
msgid "Auto Select"
msgstr "Seleksi Otomatis"
@@ -6692,227 +6697,227 @@ msgstr "Seleksi Otomatis"
# "Bawaan Pencetak" bukan "Baku Pencetak"^^
#. Translators: this is an option of "Paper Source"
#. Translators: this is an option of "Resolution"
#: modules/printbackends/gtkprintbackendcups.c:4636
#: modules/printbackends/gtkprintbackendcups.c:4638
#: modules/printbackends/gtkprintbackendcups.c:4640
#: modules/printbackends/gtkprintbackendcups.c:4644
#: modules/printbackends/gtkprintbackendcups.c:4643
#: modules/printbackends/gtkprintbackendcups.c:4645
#: modules/printbackends/gtkprintbackendcups.c:4647
#: modules/printbackends/gtkprintbackendcups.c:4651
msgctxt "printing option value"
msgid "Printer Default"
msgstr "Bawaan Pencetak"
#. Translators: this is an option of "GhostScript"
#: modules/printbackends/gtkprintbackendcups.c:4646
#: modules/printbackends/gtkprintbackendcups.c:4653
msgctxt "printing option value"
msgid "Embed GhostScript fonts only"
msgstr "Tempelkan fonta GhostScript saja"
#. Translators: this is an option of "GhostScript"
#: modules/printbackends/gtkprintbackendcups.c:4648
#: modules/printbackends/gtkprintbackendcups.c:4655
msgctxt "printing option value"
msgid "Convert to PS level 1"
msgstr "Konversi ke PS tingkat 1"
#. Translators: this is an option of "GhostScript"
#: modules/printbackends/gtkprintbackendcups.c:4650
#: modules/printbackends/gtkprintbackendcups.c:4657
msgctxt "printing option value"
msgid "Convert to PS level 2"
msgstr "Konversi ke PS tingkat 2"
#. Translators: this is an option of "GhostScript"
#: modules/printbackends/gtkprintbackendcups.c:4652
#: modules/printbackends/gtkprintbackendcups.c:4659
msgctxt "printing option value"
msgid "No pre-filtering"
msgstr "Tanpa pra penapisan"
#. Translators: "Miscellaneous" is the label for a button, that opens
#. up an extra panel of settings in a print dialog.
#: modules/printbackends/gtkprintbackendcups.c:4661
#: modules/printbackends/gtkprintbackendcups.c:4668
msgctxt "printing option group"
msgid "Miscellaneous"
msgstr "Rupa-rupa"
#: modules/printbackends/gtkprintbackendcups.c:4688
#: modules/printbackends/gtkprintbackendcups.c:4695
msgctxt "sides"
msgid "One Sided"
msgstr "Satu Sisi"
#. Translators: this is an option of "Two Sided"
#: modules/printbackends/gtkprintbackendcups.c:4690
#: modules/printbackends/gtkprintbackendcups.c:4697
msgctxt "sides"
msgid "Long Edge (Standard)"
msgstr "Sisi Panjang (Standar)"
#. Translators: this is an option of "Two Sided"
#: modules/printbackends/gtkprintbackendcups.c:4692
#: modules/printbackends/gtkprintbackendcups.c:4699
msgctxt "sides"
msgid "Short Edge (Flip)"
msgstr "Sisi Pendek (Putar)"
#. Translators: Top output bin
#: modules/printbackends/gtkprintbackendcups.c:4695
#: modules/printbackends/gtkprintbackendcups.c:4702
msgctxt "output-bin"
msgid "Top Bin"
msgstr "Wadah Puncak"
#. Translators: Middle output bin
#: modules/printbackends/gtkprintbackendcups.c:4697
#: modules/printbackends/gtkprintbackendcups.c:4704
msgctxt "output-bin"
msgid "Middle Bin"
msgstr "Wadah Tengah"
#. Translators: Bottom output bin
#: modules/printbackends/gtkprintbackendcups.c:4699
#: modules/printbackends/gtkprintbackendcups.c:4706
msgctxt "output-bin"
msgid "Bottom Bin"
msgstr "Wadah Dasar"
#. Translators: Side output bin
#: modules/printbackends/gtkprintbackendcups.c:4701
#: modules/printbackends/gtkprintbackendcups.c:4708
msgctxt "output-bin"
msgid "Side Bin"
msgstr "Wadah Sisi"
#. Translators: Left output bin
#: modules/printbackends/gtkprintbackendcups.c:4703
#: modules/printbackends/gtkprintbackendcups.c:4710
msgctxt "output-bin"
msgid "Left Bin"
msgstr "Wadah Kiri"
#. Translators: Right output bin
#: modules/printbackends/gtkprintbackendcups.c:4705
#: modules/printbackends/gtkprintbackendcups.c:4712
msgctxt "output-bin"
msgid "Right Bin"
msgstr "Wadah Kanan"
#. Translators: Center output bin
#: modules/printbackends/gtkprintbackendcups.c:4707
#: modules/printbackends/gtkprintbackendcups.c:4714
msgctxt "output-bin"
msgid "Center Bin"
msgstr "Wadah Pusat"
#. Translators: Rear output bin
#: modules/printbackends/gtkprintbackendcups.c:4709
#: modules/printbackends/gtkprintbackendcups.c:4716
msgctxt "output-bin"
msgid "Rear Bin"
msgstr "Wadah Belakang"
#. Translators: Output bin where one sided output is oriented in the face-up position
#: modules/printbackends/gtkprintbackendcups.c:4711
#: modules/printbackends/gtkprintbackendcups.c:4718
msgctxt "output-bin"
msgid "Face Up Bin"
msgstr "Wadah Telentang"
#. Translators: Output bin where one sided output is oriented in the face-down position
#: modules/printbackends/gtkprintbackendcups.c:4713
#: modules/printbackends/gtkprintbackendcups.c:4720
msgctxt "output-bin"
msgid "Face Down Bin"
msgstr "Wadah Telungkup"
#. Translators: Large capacity output bin
#: modules/printbackends/gtkprintbackendcups.c:4715
#: modules/printbackends/gtkprintbackendcups.c:4722
msgctxt "output-bin"
msgid "Large Capacity Bin"
msgstr "Wadah Kapasitas Besar"
#. Translators: Output stacker number %d
#: modules/printbackends/gtkprintbackendcups.c:4737
#: modules/printbackends/gtkprintbackendcups.c:4744
#, c-format
msgctxt "output-bin"
msgid "Stacker %d"
msgstr "Penumpuk %d"
#. Translators: Output mailbox number %d
#: modules/printbackends/gtkprintbackendcups.c:4741
#: modules/printbackends/gtkprintbackendcups.c:4748
#, c-format
msgctxt "output-bin"
msgid "Mailbox %d"
msgstr "Kotak-surat %d"
#. Translators: Private mailbox
#: modules/printbackends/gtkprintbackendcups.c:4745
#: modules/printbackends/gtkprintbackendcups.c:4752
msgctxt "output-bin"
msgid "My Mailbox"
msgstr "Kotak-suratku"
#. Translators: Output tray number %d
#: modules/printbackends/gtkprintbackendcups.c:4749
#: modules/printbackends/gtkprintbackendcups.c:4756
#, c-format
msgctxt "output-bin"
msgid "Tray %d"
msgstr "Baki %d"
# "Bawaan Pencetak" bukan "Baku Pencetak"^^
#: modules/printbackends/gtkprintbackendcups.c:5226
#: modules/printbackends/gtkprintbackendcups.c:5233
msgid "Printer Default"
msgstr "Bawaan Pencetak"
#. Translators: These strings name the possible values of the
#. * job priority option in the print dialog
#.
#: modules/printbackends/gtkprintbackendcups.c:5670
#: modules/printbackends/gtkprintbackendcups.c:5677
msgid "Urgent"
msgstr "Penting"
#: modules/printbackends/gtkprintbackendcups.c:5670
#: modules/printbackends/gtkprintbackendcups.c:5677
msgid "High"
msgstr "Tinggi"
#: modules/printbackends/gtkprintbackendcups.c:5670
#: modules/printbackends/gtkprintbackendcups.c:5677
msgid "Medium"
msgstr "Sedang"
#: modules/printbackends/gtkprintbackendcups.c:5670
#: modules/printbackends/gtkprintbackendcups.c:5677
msgid "Low"
msgstr "Rendah"
#. Translators, this string is used to label the job priority option
#. * in the print dialog
#.
#: modules/printbackends/gtkprintbackendcups.c:5700
#: modules/printbackends/gtkprintbackendcups.c:5707
msgid "Job Priority"
msgstr "Prioritas Tugas"
#. Translators, this string is used to label the billing info entry
#. * in the print dialog
#.
#: modules/printbackends/gtkprintbackendcups.c:5711
#: modules/printbackends/gtkprintbackendcups.c:5718
msgid "Billing Info"
msgstr "Info Tagihan"
#. Translators, these strings are names for various 'standard' cover
#. * pages that the printing system may support.
#.
#: modules/printbackends/gtkprintbackendcups.c:5735
#: modules/printbackends/gtkprintbackendcups.c:5742
msgctxt "cover page"
msgid "None"
msgstr "Nihil"
#: modules/printbackends/gtkprintbackendcups.c:5736
#: modules/printbackends/gtkprintbackendcups.c:5743
msgctxt "cover page"
msgid "Classified"
msgstr "Classified"
#: modules/printbackends/gtkprintbackendcups.c:5737
#: modules/printbackends/gtkprintbackendcups.c:5744
msgctxt "cover page"
msgid "Confidential"
msgstr "Konfidensial"
#: modules/printbackends/gtkprintbackendcups.c:5738
#: modules/printbackends/gtkprintbackendcups.c:5745
msgctxt "cover page"
msgid "Secret"
msgstr "Rahasia"
#: modules/printbackends/gtkprintbackendcups.c:5739
#: modules/printbackends/gtkprintbackendcups.c:5746
msgctxt "cover page"
msgid "Standard"
msgstr "Standar"
#: modules/printbackends/gtkprintbackendcups.c:5740
#: modules/printbackends/gtkprintbackendcups.c:5747
msgctxt "cover page"
msgid "Top Secret"
msgstr "Top Secret"
#: modules/printbackends/gtkprintbackendcups.c:5741
#: modules/printbackends/gtkprintbackendcups.c:5748
msgctxt "cover page"
msgid "Unclassified"
msgstr "Unclassified"
@@ -6920,7 +6925,7 @@ msgstr "Unclassified"
#. Translators, this string is used to label the pages-per-sheet option
#. * in the print dialog
#.
#: modules/printbackends/gtkprintbackendcups.c:5753
#: modules/printbackends/gtkprintbackendcups.c:5760
msgctxt "printer option"
msgid "Pages per Sheet"
msgstr "Halaman per Lembar"
@@ -6928,7 +6933,7 @@ msgstr "Halaman per Lembar"
#. Translators, this string is used to label the option in the print
#. * dialog that controls in what order multiple pages are arranged
#.
#: modules/printbackends/gtkprintbackendcups.c:5770
#: modules/printbackends/gtkprintbackendcups.c:5777
msgctxt "printer option"
msgid "Page Ordering"
msgstr "Urutan Halaman"
@@ -6936,7 +6941,7 @@ msgstr "Urutan Halaman"
#. Translators, this is the label used for the option in the print
#. * dialog that controls the front cover page.
#.
#: modules/printbackends/gtkprintbackendcups.c:5812
#: modules/printbackends/gtkprintbackendcups.c:5819
msgctxt "printer option"
msgid "Before"
msgstr "Sebelum"
@@ -6944,7 +6949,7 @@ msgstr "Sebelum"
#. Translators, this is the label used for the option in the print
#. * dialog that controls the back cover page.
#.
#: modules/printbackends/gtkprintbackendcups.c:5827
#: modules/printbackends/gtkprintbackendcups.c:5834
msgctxt "printer option"
msgid "After"
msgstr "Sesudah"
@@ -6953,7 +6958,7 @@ msgstr "Sesudah"
#. * a print job is printed. Possible values are 'now', a specified time,
#. * or 'on hold'
#.
#: modules/printbackends/gtkprintbackendcups.c:5847
#: modules/printbackends/gtkprintbackendcups.c:5854
msgctxt "printer option"
msgid "Print at"
msgstr "Dicetak pada"
@@ -6961,7 +6966,7 @@ msgstr "Dicetak pada"
#. Translators: this is the name of the option that allows the user
#. * to specify a time when a print job will be printed.
#.
#: modules/printbackends/gtkprintbackendcups.c:5858
#: modules/printbackends/gtkprintbackendcups.c:5865
msgctxt "printer option"
msgid "Print at time"
msgstr "Dicetak pada waktu"
@@ -6971,19 +6976,19 @@ msgstr "Dicetak pada waktu"
#. * the width and height in points. E.g: "Custom
#. * 230.4x142.9"
#.
#: modules/printbackends/gtkprintbackendcups.c:5905
#: modules/printbackends/gtkprintbackendcups.c:5912
#, c-format
msgid "Custom %s×%s"
msgstr "Gubahan %sx%s"
#. TRANSLATORS: this is the ICC color profile to use for this job
#: modules/printbackends/gtkprintbackendcups.c:6016
#: modules/printbackends/gtkprintbackendcups.c:6023
msgctxt "printer option"
msgid "Printer Profile"
msgstr "Profil Pencetak"
#. TRANSLATORS: this is when color profile information is unavailable
#: modules/printbackends/gtkprintbackendcups.c:6023
#: modules/printbackends/gtkprintbackendcups.c:6030
msgctxt "printer option value"
msgid "Unavailable"
msgstr "Tak tersedia"

380
po/ka.po

File diff suppressed because it is too large Load Diff