office-gobmx/sw/CppunitTest_sw_core_layout.mk
Miklos Vajna f461853b11 sw floattable: fix finding the nearest text in split flys on mouse click
Clicking on the right of the floating table on the page 1 resulted
in a cursor position on page 2 instead of a position inside the floating
table on page 1.

What happens is that the anchor text frame on page 1 is wide enough to
contain the mouse click position, but then "before the first character
of the paragraph" is on page 2, so a page 1 click results in a page 2
cursor position, which is unexpected.

Fix the problem by first ignoring which dummy anchor frames (all
non-last ones) in SwLayoutFrame, so
SwLayoutFrame::GetModelPositionForViewPoint() in
SwPageFrame::GetModelPositionForViewPoint() fails for the perfect match
case, and then later looking for split flys explicitly, so the corrected
case finds the split fly on the page.

I imagine this is not only useful for mouse clicks, but it's also good
for everything else that uses GetModelPositionForViewPoint(), e.g.
keyboard page-down.

Change-Id: I761b211c1b5468d9d8996c59a32ac9be5b83a777
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160194
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
2023-12-01 10:21:11 +01:00

91 lines
2.3 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/.
#
#*************************************************************************
$(eval $(call gb_CppunitTest_CppunitTest,sw_core_layout))
$(eval $(call gb_CppunitTest_use_common_precompiled_header,sw_core_layout))
$(eval $(call gb_CppunitTest_add_exception_objects,sw_core_layout, \
sw/qa/core/layout/fly \
sw/qa/core/layout/flycnt \
sw/qa/core/layout/frmtool \
sw/qa/core/layout/ftnfrm \
sw/qa/core/layout/layact \
sw/qa/core/layout/layout \
sw/qa/core/layout/paintfrm \
sw/qa/core/layout/sortedobjs \
sw/qa/core/layout/tabfrm \
sw/qa/core/layout/trvlfrm \
))
$(eval $(call gb_CppunitTest_use_libraries,sw_core_layout, \
editeng \
comphelper \
cppu \
cppuhelper \
sal \
sfx \
subsequenttest \
sw \
swqahelper \
test \
unotest \
utl \
vcl \
svt \
tl \
svl \
svxcore \
))
$(eval $(call gb_CppunitTest_use_externals,sw_core_layout,\
boost_headers \
libxml2 \
))
$(eval $(call gb_CppunitTest_set_include,sw_core_layout,\
-I$(SRCDIR)/sw/inc \
-I$(SRCDIR)/sw/source/core/inc \
-I$(SRCDIR)/sw/source/uibase/inc \
-I$(SRCDIR)/sw/qa/inc \
$$(INCLUDE) \
))
$(eval $(call gb_CppunitTest_use_api,sw_core_layout,\
udkapi \
offapi \
oovbaapi \
))
$(eval $(call gb_CppunitTest_use_ure,sw_core_layout))
$(eval $(call gb_CppunitTest_use_vcl,sw_core_layout))
$(eval $(call gb_CppunitTest_use_rdb,sw_core_layout,services))
$(eval $(call gb_CppunitTest_use_custom_headers,sw_core_layout,\
officecfg/registry \
))
$(eval $(call gb_CppunitTest_use_configuration,sw_core_layout))
$(eval $(call gb_CppunitTest_use_uiconfigs,sw_core_layout, \
modules/swriter \
sfx \
svt \
svx \
))
# assert if font/glyph fallback occurs
$(eval $(call gb_CppunitTest_set_non_application_font_use,sw_core_layout,abort))
$(eval $(call gb_CppunitTest_use_more_fonts,sw_core_layout))
# vim: set noet sw=4 ts=4: