812fe185fb
Previously, a new `QtXAccessible` object was created for an `XAccessible` each time before `QAccessible::queryAccessibleInterface` was called, which is not only unnecessary but also causes various issues, e.g. it breaks walking the a11y hierarchy upwards (i.e. from children to parents), since a new object is created for the parent. This introduces `QtAccessibleRegistry` that keeps a mapping between the `XAccessible` and the associated `QObject`. That mapping is used to reuse already created objects instead of creating new ones for the same `XAccessible`. The entry for an `XAccessible` is removed again from the map in `QtAccessibleWidget::invalidate`, which gets called when the `XAccessible` gets disposed, s. `QtAccessibleEventListener::disposing`. With this in place, Orca now also nicely announces only the text of the push buttons themselves in the "Save Document?" dialog when switching between the buttons using the Tab key, rather than announcing the whole widget hierarchy every time (probably because creating a new object every time prevented Orca from recognizing that the previously selected pushbutton and the newly selected one are siblings, i.e. have the same parent object.) Change-Id: Ic890a387ff016e889f25dba70c82d0d81ae7a9e3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138757 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
129 lines
3.2 KiB
Makefile
129 lines
3.2 KiB
Makefile
# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
|
|
#
|
|
# This file is part of the LibreOffice project.
|
|
#
|
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
#
|
|
# This file incorporates work covered by the following license notice:
|
|
#
|
|
# Licensed to the Apache Software Foundation (ASF) under one or more
|
|
# contributor license agreements. See the NOTICE file distributed
|
|
# with this work for additional information regarding copyright
|
|
# ownership. The ASF licenses this file to you under the Apache
|
|
# License, Version 2.0 (the "License"); you may not use this file
|
|
# except in compliance with the License. You may obtain a copy of
|
|
# the License at http://www.apache.org/licenses/LICENSE-2.0 .
|
|
#
|
|
|
|
$(eval $(call gb_Library_Library,vclplug_qt6))
|
|
|
|
$(eval $(call gb_Library_set_plugin_for,vclplug_qt6,vcl))
|
|
|
|
$(eval $(call gb_Library_use_custom_headers,vclplug_qt6,vcl/qt6))
|
|
|
|
$(eval $(call gb_Library_set_include,vclplug_qt6,\
|
|
$$(INCLUDE) \
|
|
-I$(SRCDIR)/vcl/inc \
|
|
-I$(SRCDIR)/vcl/inc/qt6 \
|
|
))
|
|
|
|
$(eval $(call gb_Library_add_defs,vclplug_qt6,\
|
|
-DVCLPLUG_QT_IMPLEMENTATION \
|
|
-DVCL_INTERNALS \
|
|
))
|
|
|
|
$(eval $(call gb_Library_use_sdk_api,vclplug_qt6))
|
|
|
|
$(eval $(call gb_Library_use_libraries,vclplug_qt6,\
|
|
tl \
|
|
utl \
|
|
sot \
|
|
ucbhelper \
|
|
basegfx \
|
|
comphelper \
|
|
cppuhelper \
|
|
i18nlangtag \
|
|
i18nutil \
|
|
$(if $(ENABLE_JAVA), \
|
|
jvmaccess) \
|
|
cppu \
|
|
sal \
|
|
salhelper \
|
|
))
|
|
|
|
$(eval $(call gb_Library_use_externals,vclplug_qt6,\
|
|
boost_headers \
|
|
cairo \
|
|
epoxy \
|
|
graphite \
|
|
harfbuzz \
|
|
icu_headers \
|
|
icuuc \
|
|
qt6 \
|
|
))
|
|
|
|
ifneq ($(QT6_HAVE_GOBJECT),)
|
|
$(eval $(call gb_Library_add_cxxflags,vclplug_qt6,\
|
|
$(QT6_GOBJECT_CFLAGS) \
|
|
))
|
|
$(eval $(call gb_Library_add_libs,vclplug_qt6,\
|
|
$(QT6_GOBJECT_LIBS) \
|
|
))
|
|
endif
|
|
|
|
$(eval $(call gb_Library_add_exception_objects,vclplug_qt6,\
|
|
vcl/qt6/QtAccessibleEventListener \
|
|
vcl/qt6/QtAccessibleRegistry \
|
|
vcl/qt6/QtAccessibleWidget \
|
|
vcl/qt6/QtBitmap \
|
|
vcl/qt6/QtClipboard \
|
|
vcl/qt6/QtData \
|
|
vcl/qt6/QtDragAndDrop \
|
|
vcl/qt6/QtFilePicker \
|
|
vcl/qt6/QtFont \
|
|
vcl/qt6/QtFontFace \
|
|
vcl/qt6/QtFrame \
|
|
vcl/qt6/QtGraphics \
|
|
vcl/qt6/QtGraphics_Controls \
|
|
vcl/qt6/QtGraphics_GDI \
|
|
vcl/qt6/QtGraphics_Text \
|
|
vcl/qt6/QtInstance \
|
|
vcl/qt6/QtInstance_Print \
|
|
vcl/qt6/QtMainWindow \
|
|
vcl/qt6/QtMenu \
|
|
vcl/qt6/QtObject \
|
|
vcl/qt6/QtOpenGLContext \
|
|
vcl/qt6/QtPainter \
|
|
vcl/qt6/QtPrinter \
|
|
vcl/qt6/QtSvpGraphics \
|
|
vcl/qt6/QtSvpSurface \
|
|
vcl/qt6/QtSystem \
|
|
vcl/qt6/QtTimer \
|
|
vcl/qt6/QtTools \
|
|
vcl/qt6/QtTransferable \
|
|
vcl/qt6/QtVirtualDevice \
|
|
vcl/qt6/QtWidget \
|
|
vcl/qt6/QtXAccessible \
|
|
$(if $(USING_X11), \
|
|
vcl/qt6/QtX11Support \
|
|
) \
|
|
))
|
|
|
|
ifeq ($(OS),LINUX)
|
|
$(eval $(call gb_Library_add_libs,vclplug_qt6,\
|
|
-lm \
|
|
-ldl \
|
|
))
|
|
endif
|
|
|
|
# Workaround for clang+icecream (clang's -frewrite-includes
|
|
# doesn't handle Qt6's QT_HAS_INCLUDE that Qt6 uses for <chrono>).
|
|
ifeq ($(COM_IS_CLANG),TRUE)
|
|
$(eval $(call gb_Library_add_cxxflags,vclplug_qt6, \
|
|
-include chrono \
|
|
))
|
|
endif
|
|
|
|
# vim: set noet sw=4 ts=4:
|